数组中的Angular js过滤器数组
Angular js filter array inside array
我很难用Angular过滤器来解决以下问题。
过滤器逻辑如下:
1) 如果该项的所有listItem都具有qtyLeft!=0,不显示该项目
2) 如果该项目的任何listItem的qtyLeft==0,则显示项目标题以及qtyLeft==0 的核心条件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>
在此处创建工作Plunkr。https://plnkr.co/edit/SRMgyRIU7nuaybhX3oUC?p=preview
如果要使用此指令,请不要忘记在项目中包含underscore.js库。
<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
}
})
相关文章:
- angularjs ng基于点击时的数组值重复过滤器
- javascript和具有唯一密钥的es6过滤器数组
- 数组过滤器导致无限$digest循环
- (角度.js)如何通过过滤器计算数组中有多少项目
- AngularJS过滤器不适用于我的数据:关联数组
- 键上的javascript数组对象过滤器
- 如何遍历对象数组并将值放入过滤器中
- 如何使用angular js过滤器格式化数组中的值
- Javascript数组过滤器:获取正确的上下文
- 如何在angularjs中对指令内部的JSON数组使用过滤器
- 对象中的角度过滤器空数组
- JavaScript's数组过滤器函数在没有分配函数的情况下使用-这里发生了什么
- Knockout.js 数组过滤器语法
- javascript在数组过滤器中嵌套for循环
- AngularJS数组过滤器不起作用
- 为什么我的数组过滤器返回'undefined不是一个函数'
- AngularJS -自定义多维数组过滤器
- IE8数组过滤器()不起作用
- 数组过滤器更改主数组
- 数组过滤器返回字符串