我无法理解这一点。
我正在显示ng-repeat
的对象集合,如下所示:
<div ng-repeat="obj in objs">{{obj | json}}</div>
然后,我想根据它所代表的对象是否是“当前对象”,将类current
应用于其中一个<div>
元素;即,在实践中,obj
是否指向与另一个范围变量current
相同的东西。
我试过了:
<div ng-repeat="obj in objs" ng-class="{current: 'obj == current'}">{{obj | json}}, current: {{obj == current}}</div>
有趣的是:表达式obj == current
在div的主体中被正确评估,并且当范围中的current
的值为{{1时,对于所有这些表达式最初为false }}。但是这个类仍适用于所有这些类,尽管它应该依赖于完全相同的表达式。
每当我将null
的值更改为指向另一个对象时,div中的文本会相应更新,并更改为current
,但该类始终保持应用状态。
我在这里缺少什么?即使表达式产生true
?
使用它:JSFiddle。
答案 0 :(得分:3)
报价导致此失败。它应该改为:
ng-class="{'current': obj == current}"
编辑你的JS小提琴:http://jsfiddle.net/qXgJm/1/
引号导致它总是返回true,因为字符串是真实的
实施例: 这将评估为true,并记录&#39; !!!!&#39;
if ("hello world") {
console.log('!!!!');
}
答案 1 :(得分:1)
您应该在ng-class中使用不带'
的表达式。
<div ng-repeat="obj in objs" ng-class="{current: obj == current}">{{obj | json}}, current: {{obj == current}}</div>
就像这个JSFiddle
一样