在角度1.2中,我有一个对象数组:
[{
name: 'bob'
},{
name: 'jack',
archived: false
},{
name: 'ted',
archived: true
}]
然后我会重复一遍,并尝试过滤掉archived = true的任何对象
<div ng-repeat="person in people | filter: {archived: '!' }">
这在角度1.2中非常有效。
然而,当我升级到角度1.3时它停止工作。
我知道我可以简单地编写自己的过滤器函数,但是有一种正确的方法来过滤布尔属性等于true的位置,其中该属性可能不存在于所有对象中。
如果该属性不存在,则不应对其进行过滤。上面的示例数组中的IE只能过滤掉。
答案 0 :(得分:6)
虽然这似乎在1.3之前有效:
<div ng-repeat="person in people | filter: {archived: '!' }">
这在角度1.3中很有效。
<div ng-repeat="person in people | filter: {archived: '!true' }">
答案 1 :(得分:1)
UPD :使用正确的代码进行了更新。
我会为此创建一个辅助函数:
$scope.notArchived = function(el) {
return !el.archived;
};
HTML:
ng-repeat="person in people | filter: notArchived"