Javascript 阵列内部的角度js滤波器阵列
我有一个困难的时间做一个角度滤波器来解决以下问题 过滤逻辑如下:Javascript 阵列内部的角度js滤波器阵列,javascript,angularjs,angularjs-filter,Javascript,Angularjs,Angularjs Filter,我有一个困难的时间做一个角度滤波器来解决以下问题 过滤逻辑如下: 1) 如果该项的所有listItem都具有qtyLeft!=0,不显示该项目 2) 如果该项的任何listItem的qtyLeft==0,则显示该项标题以及qtyLeft==0的Coresponding listItem 下面是我的数据结构的一个基本示例,一个项目数组: $scope.jsonList = [ { _id: '0001', title: 'titleA', l
1) 如果该项的所有listItem都具有qtyLeft!=0,不显示该项目
2) 如果该项的任何listItem的qtyLeft==0,则显示该项标题以及qtyLeft==0的Coresponding listItem 下面是我的数据结构的一个基本示例,一个项目数组:
$scope.jsonList = [
{
_id: '0001',
title: 'titleA',
list: {
listName: 'listNameA',
listItem: [
{
name: 'name1',
qtyLeft: 0
},
{
name: 'name2',
qtyLeft: 0
},
]
}
},
{
_id: '0002',
title: 'titleB',
list: {
listName: 'listNameB',
listItem: [
{
name: 'name3',
qtyLeft: 2
},
{
name: 'name4',
qtyLeft: 0
},
]
}
},
{
_id: '0003',
title: 'titleC',
list: {
listName: 'listNameC',
listItem: [
{
name: 'name5',
qtyLeft: 2
},
{
name: 'name6',
qtyLeft: 2
},
]
}
},
]
以下是最终预期结果:
<div ng-repeat="item in jsonList | filter: filterLogic">
<div> </div>
</div>
// final outcome
<div>
<div>Title: titleA, ListItem: Name1, Name2</div>
<div>Title: titleB, ListItem: Name4</div>
</div>
//最终结果
标题:titleA,列表项:名称1,名称2
标题:标题栏,列表项:名称4
在此处创建了工作区
如果要使用此指令,请不要忘记在项目中包含underline.js lib
<div ng-repeat="jsonItem in jsonList | showZeroElement track by $index">
<div>Title:{{ jsonItem.title}}, ListItem:<span ng-repeat="item in
jsonItem.list.listItem track by $index" ng-if="item.qtyLeft==0">
{{item.name}}</span>
</div>
</div>
请展示您尝试过的不起作用的内容。这不是一个代码编写服务。你需要展示你所做的尝试
app.filter('showZeroElement', function() {
return function(input) {
var items = []
angular.forEach(input, function(value, index) {
angular.forEach(value.list.listItem, function(val, i) {
var found = _.findWhere(items, {
'title': value.title
})
if (val.qtyLeft === 0 && found === undefined) {
items.push(value)
}
})
})
return items
}
})