gpt4 book ai didi

angularjs - 未定义属性的 ng-repeat 过滤器

转载 作者:行者123 更新时间:2023-12-03 08:30:17 24 4
gpt4 key购买 nike

我希望这在 Angular 上真的很简单。

我有一个包含翻译人员和其他用户的列表

[{user: 'a',languages:['french','english','spanish']},
{user: 'b'}]

然后我有一个 ng-repeat,我只想显示有语言的用户
ng-repeat="translator in users | filter: {languages}"

但不幸的是,我似乎无法弄清楚如何通过属性的存在进行过滤。
我已经尝试了各种方式
{languages:'!undefined'}
{languages.length > 0}
{languages.length:'!0'}

我不想为此编写外部过滤器,因为我确定它可以在 angular 中实现,我只是无法正确使用术语。

最佳答案

<div ng-repeat="translator in users | filter : { languages : '!!' }">

解释:

考虑如下列表:
$scope.items = [
{
propertyOne: 'a',
propertyTwo: 'hello'
},
{
propertyOne: 'b',
propertyTwo: null
},
{
propertyOne: 'c',
propertyTwo: undefined
},
{
propertyOne: 'd'
}
];
'!!'过滤掉具有特定属性的对象或具有非 undefined 或 null 的特定属性的对象:
<div ng-repeat="item in items | filter : { propertyTwo : '!!' }">
{{item.propertyOne}}
</div>
<!-- outputs: a -->
'!'过滤掉不具有特定属性的对象或具有未定义或 null 的特定属性的对象:
<div ng-repeat="item in items | filter : { propertyTwo : '!' }">
{{item.propertyOne}}
</div>
<!-- outputs: b c d -->

Plnkr

注意:它不适用于具有 0、false 或空字符串 ('') 等值的属性。

编辑:先前的答案与 plunkr 示例不同。我通过交换 '!!' 来修复它们和 '!'。

关于angularjs - 未定义属性的 ng-repeat 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25177004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com