Javascript 使用角度渲染动态占位符

Javascript 使用角度渲染动态占位符,javascript,angularjs,placeholder,Javascript,Angularjs,Placeholder,我环顾四周,发现了一些标有“ng占位符”或类似内容的资源。我无法让它工作: 我注意到屏幕上似乎也没有任何东西。我对棱角分明的人还很陌生,这让我沮丧了好几个小时。一定有办法做到这一点。为什么不为ng占位符编写自己的指令呢?像这样简单的事情应该行得通。您可以像这样在html中调用它 <input ng-placeholder='test'> AngularJSng attr-{property\u name} 例如,我使用不同的占位符来表示不同的搜索词 ng-attr-placeh

我环顾四周,发现了一些标有“ng占位符”或类似内容的资源。我无法让它工作:


我注意到屏幕上似乎也没有任何东西。我对棱角分明的人还很陌生,这让我沮丧了好几个小时。一定有办法做到这一点。

为什么不为ng占位符编写自己的指令呢?像这样简单的事情应该行得通。您可以像这样在html中调用它

<input ng-placeholder='test'>

AngularJS
ng attr-{property\u name}

例如,我使用不同的占位符来表示不同的搜索词

 ng-attr-placeholder="{{isAdvanceSearch ? setPlaceholder(searchOption) : 'John Smith, 08/23/1970, 123'}}"
这里基于
isAdvanceSearch
变量,我在
setPlaceholder
方法中设置不同的占位符

setPlaceholder
方法返回要在输入字段中设置的占位符

$scope.setPlaceholder = function(searchOption) {
     if (searchOption === "foo") {
          return "Search by foo… e.g. foo1";
     } else if (searchOption === "bar") {
          return "Search by bar… e.g. bar123";
     } else {
          return "John Smith, 08/23/1970, 123";
     }
};
注:
John Smith,08/23/1970,123
是默认占位符。
不要忘记将表达式包装在
{}
括号中。

也许您可以使用
ng bind
将当前输入占位符替换为
{option.name}
。只是一个想法。;-)@我试过了。出于某种原因,
ng bind
在输入标记本身(例如[Object Object])中放入了一些数据,因此我觉得这不是正确的方法。如果它看起来不那么神秘的话,我会这样做。撇开这一点不谈,即使传入测试字符串,我似乎也没有定义(所以它可以工作,只是看起来不正确?)。有什么我遗漏的吗?我所做的是通过“myApp.directive(“…”)”@Seiyria将其附加到我的根模块上,这很奇怪,似乎对我很有用。这是一个哦,我知道了。我花了一点时间才意识到这是一个变量,而不是字符串。我仍然习惯于对需要表示为字符串(比如“'string')的数据进行双引号引用,在某些情况下,比如单选按钮。谢谢
$scope.setPlaceholder = function(searchOption) {
     if (searchOption === "foo") {
          return "Search by foo… e.g. foo1";
     } else if (searchOption === "bar") {
          return "Search by bar… e.g. bar123";
     } else {
          return "John Smith, 08/23/1970, 123";
     }
};