我试图从控制器更改输入占位符的值,但是还没有想清楚该怎么做。
input(type='text', ng-model='inputText', side='30', placeholder='enter username')
如何修改模型元素的属性?
你可以在控制器中与变量进行绑定:
<input type="text" ng-model="inputText" placeholder="{{somePlaceholder}}" />
在控制器中:$scope.somePlaceholder = 'abc';
尽管对于我来说该回答被接受了,但在IE中仍然会抛出Javascript错误(至少对于Angular 1.2而言)。这是一个bug,但解决方法是使用ngAttr,详见https://docs.angularjs.org/guide/interpolation
<input type="text" ng-model="inputText" ng-attr-placeholder="{{somePlaceholder}}" />
由于AngularJS没有像jQuery一样的指令DOM操作,修改一个元素的属性的正确方法是使用指令。 通过指令的链接函数,您可以访问元素及其属性。
将整个输入内容包装在一个指令中,您仍然可以通过控制器属性引入ng-model的方法。
这种方法有助于将ngmodel的逻辑与占位符从控制器中分离出来。 如果它们之间没有逻辑关系,您可以按照Wagner Francisco所说的那样进行操作。
input(type="text", ng-model="someModel", placeholder="{{someScopeVariable}}")`
在你的控制器中:
$scope.someScopeVariable = 'somevalue'
ng-attr-*attributeName*
,如ysub所述。 - Aides