【发布时间】:2025-12-23 04:15:07
【问题描述】:
在 Angular 1.2 中,我有一个对象数组:
[{
name: 'bob'
},{
name: 'jack',
archived: false
},{
name: 'ted',
archived: true
}]
然后我会 ng-repeat 遍历数组并尝试过滤掉所有 archived = true 的对象
<div ng-repeat="person in people | filter: {archived: '!' }">
这在 angular 1.2 中效果很好
但是当我升级到 Angular 1.3 时它停止工作。
我知道我可以简单地编写自己的过滤器函数,但是有没有一种正确的方法来过滤布尔属性等于 true 的地方,而该属性可能并不存在于所有对象中。
如果该属性不存在,则不应对其进行过滤。上面示例数组中的 IE 只有 ted 应该被过滤掉。
【问题讨论】:
-
嗯.. 为什么不直接使用
filter: {archived: true}? -
对不起,如果我混淆了事情,我想过滤掉存档 == true 的地方。这意味着我希望数组中的所有对象都已存档 == false 或根本没有存档属性。
标签: angularjs angularjs-filter