如何在AngularJS中使用单向绑定ngClass指令?

时间:2015-09-11 10:41:15

标签: angularjs

我有一个对象列表。它们显示为ngRepeat direcitve。带有信息的每个块都包含指令,它有一些辅助方法。

即。它构造了labelId变量,在这个块中使用了单向绑定。

因此,当我想在for属性中显示它时,我没有问题 {{::label}}
当我想将其显示为字段名称时,也没有问题{{::label}}

但是当我想在ngMessages块中引用它时,如:

<p class="error-message" ng-messages="FormName[::label + '_' + $index].$error" ng-messages-include="error-messages.html"></p>

或者当我想用它来参考动态设置css类时:

<div ng-class="{'has-error': (FormName[::label + '_' + $index].$error.someErrorName)}">

然后我得到Error

Error: [$parse:syntax] Syntax Error: Token ':' not a primary expression at column 21 of the expression [{'has-error': (FormName[::label + '_' + $index].$error

1 个答案:

答案 0 :(得分:20)

ng-class也有单向绑定语法

ng-class="::{'has-error': ..., 'no-error': ...}"

但即使里面有很多课,它也是一个表达。

因此,如果你需要对ng-class中的某些类进行双向绑定,那么就不能使用单向绑定。