通过模型改变input占位符的值?

我试图改变控制器的input占位符的价值,但不能弄清楚如何。

input(type='text', ng-model='inputText', side='30', placeholder='enter username') 

有没有办法修改模型的元素属性?

你可以在控制器中绑定一个variables:

 <input type="text" ng-model="inputText" placeholder="{{somePlaceholder}}" /> 

在控制器中:

 $scope.somePlaceholder = 'abc'; 

接受的答案仍然在IE中为我(至less对于Angular 1.2)抛出一个Javascript错误。 这是一个错误,但解决方法是在https://docs.angularjs.org/guide/interpolation上使用ngAttr详细信息;

 <input type="text" ng-model="inputText" ng-attr-placeholder="{{somePlaceholder}}" /> 

问题: https : //github.com/angular/angular.js/issues/5025

由于AngularJS没有像jQuery那样的指令DOM操作,所以修改一个元素属性的正确方法是使用指令。 通过指令的链接function,您可以访问元素及其属性。

在一个指令中包装整个input,你仍然可以通过控制器属性引入ng-model的方法。

这个方法将有助于将ngmodel的逻辑与控制器的占位符分离。 如果他们之间没有任何逻辑关系,你肯定可以像瓦格纳·弗朗西斯科说的那样去做。

正如Wagner Francisco所说,(在JADE)

 input(type="text", ng-model="someModel", placeholder="{{someScopeVariable}}")` 

在您的控制器中:

 $scope.someScopeVariable = 'somevalue'