对于Angular的ng-repeat
,我只看到了内联相等过滤器。但是,是否也可以内联不等式?
This fiddle说明了我的问题:
Equality filter works:
<div ng-controller="repeatCtrl">
<div ng:repeat="o in list | filter: id = myPrecious.id">
{{o.id}}:
<input type="checkbox" ng:model="o.checked" />
{{o.checked}}
</div>
</div>
<hr />
Inequality filter does not work:
<div ng-controller="repeatCtrl">
<div ng:repeat="o in list | filter: id != myPrecious.id">
{{o.id}}:
<input type="checkbox" ng:model="o.checked" />
{{o.checked}}
</div>
</div>
The documentation for ng-repeat需要 MUCH 。是否可以使用内联不等式过滤器?
答案 0 :(得分:3)
是的,请看这里:http://jsfiddle.net/DLYys/1/
<div ng-controller="repeatCtrl">
<div ng:repeat="o in list | filter: {id : !myPrecious.id}">
{{o.id}}:
<input type="checkbox" ng:model="o.checked" />
{{o.checked}}
</div>
</div>
答案 1 :(得分:1)
您也可以这样做
$scope.someLogic = function(item) {
return ($scope.myPrecious.id !== item.id);
};
BAD:
<div ng-controller="repeatCtrl">
<div ng:repeat="o in list | filter: someLogic">
{{o.id}}:
<input type="checkbox" ng:model="o.checked" />
{{o.checked}}
</div>
</div>
答案 2 :(得分:0)
可以使用Angular字符串操作完成。 This fiddle显示了一个有效的解决方案。
诀窍是使用{someProp: '!' + someVariable}
:
ng:repeat="o in list | filter: {id : '!' + myPrecious.id}"
我还没有为Angular过滤器语法找到合适的参考。