通过模型更改输入占位符的值?

时间:2013-07-18 01:46:42

标签: angularjs pug

我正在尝试从控制器更改输入占位符的值,但无法弄清楚如何。

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

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

4 个答案:

答案 0 :(得分:120)

您可以使用控制器中的变量进行绑定:

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

在控制器中:

$scope.somePlaceholder = 'abc';

答案 1 :(得分:20)

接受的答案仍然在我的IE中引发了一个Javascript错误(至少对于Angular 1.2)。这是一个错误,但解决方法是在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

答案 2 :(得分:7)

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

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

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

答案 3 :(得分:4)

正如Wagner Francisco所说,(在JADE中)

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

在你的控制器中:

$scope.someScopeVariable = 'somevalue'