gpt4 book ai didi

angularjs - 如何按属性过滤为空数组?

转载 作者:行者123 更新时间:2023-12-04 14:43:32 24 4
gpt4 key购买 nike

我在 ng-repeat 上有这个

<tr ng-repeat="website in websites">
<td>{{website.url}}</td>
</tr>

每个 website来自 websites 的对象数组如下所示:
{
url: "example.com",
groups: []
}

问题:如何将过滤器应用于上述循环,使其仅显示 groups 的元素属性是一个空数组?

我尝试过的事情:
data-ng-repeat="website in websites | filter: {groups: []}"
data-ng-repeat="website in websites | filter: !groups.length"
data-ng-repeat="website in websites | filter: groups.length === 0"

(控制台中没有错误,但过滤掉了所有内容)
data-ng-repeat="website in websites | filter: {groups: ''}"

(与我想要的相反,只显示 groups 不是空数组的项目)
data-ng-repeat="website in websites | filter: {groups: null}"

(如果不是 [] 我使用 null 来表示没有值,这有效,但它看起来真的很乱......因为我需要不断注意 groups 属性变空,并手动将其设置为 null)

最佳答案

我在 Controller 中添加了一个过滤器功能:

JS:

angular.module('myApp', [])
.controller('myController', ['$scope',
function($scope) {
$scope.friends = [{
name: 'John', phone: '555-1276', a: [1, 2, 3]
}, { name: 'Mary', phone: '800-BIG-MARY', a: [1, 2, 3]
}, { name: 'Mike', phone: '555-4321', a: null
}, { name: 'Adam', phone: '555-5678', a: []
}, { name: 'Julie', phone: '555-8765', a: []
}, { name: 'Juliette', phone: '555-5678', a: []
}];

$scope.filterFn = function(item) {
// must have array, and array must be empty
return item.a && item.a.length === 0;
};

}
]);

在您的模板中:
<table>
<tr><th>Name</th><th>Phone</th><th>array len</th></tr>
<tr ng-repeat="friend in friends | filter: filterFn">
<td>{{friend.name}}</td>
<td>{{friend.phone}}</td>
<td>{{friend.a.length}}</td>
</tr>
</table>

Modified Angular Filter doc plnkr

关于angularjs - 如何按属性过滤为空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29596831/

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