筛选属性,即使该属性不存在 [英] Filter on property even if it doesn't exist

查看:83
本文介绍了筛选属性,即使该属性不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在angular 1.2中,我有一个对象数组:

In angular 1.2 I had an array of objects:

[{
  name: 'bob'
},{
  name: 'jack',
  archived: false
},{
  name: 'ted',
  archived: true
}]

然后我将对整个人进行ng-repeat,并尝试过滤掉任何已归档= true的对象

Then I would ng-repeat over the array of people and try to filter out any object where archived = true

<div ng-repeat="person in people | filter: {archived: '!' }">

这在1.2角上效果很好

This worked great in angular 1.2

但是当我升级到angular 1.3时,它就停止工作了.

However it stop working when I upgraded to angular 1.3.

我知道我可以简单地编写自己的过滤器函数,但是有一种正确的方法来过滤布尔属性等于true的情况,而该属性可能并不存在于所有对象中.

I know I can simply write my own filter function, but is there a correct way to filter where a boolean property equals true, where that property might not exist in all objects.

如果该属性不存在,则不应对其进行过滤.上面示例数组中的IE仅应过滤掉ted.

If the property does not exist it should not be filtered. IE in the example array above only ted should be filtered out.

推荐答案

在1.3之前的版本中似乎可行:

While this seemed to work in pre 1.3:

<div ng-repeat="person in people | filter: {archived: '!' }">

这在角度1.3中效果很好

This works in great in angular 1.3

<div ng-repeat="person in people | filter: {archived: '!true' }">

这篇关于筛选属性,即使该属性不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆