我有一个对象列表。它们显示为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
答案 0 :(得分:20)
ng-class也有单向绑定语法
ng-class="::{'has-error': ..., 'no-error': ...}"
但即使里面有很多课,它也是一个表达。
因此,如果你需要对ng-class中的某些类进行双向绑定,那么就不能使用单向绑定。