我正在使用angular-filter,我想循环集合A,只显示数组B中存在A.a的项目。
A = [{a:'mouse', c:'Tom'}, {a:'cat', c:'Jerry'}];
B = ['cat', 'dog'];
然后,我想要类似的东西:
<div ng-repeat="item in A | filterBy: ['item.a'] : B">
{{item.c}}
</div>
会返回:<div>Jerry</div>
,因为cat在B中。我想我可以使用pick实现此目的,但是想知道我是否可以使用filterBy执行此操作?
答案 0 :(得分:0)
如果使用lodash会为你做,你没有与过滤器的想法结合。这是一个快速的解决方案。
在范围上定义一个获取所选择的函数并将其绑定到ng-repeat的函数:
$scope.commonItems = function(){
return _.filter(A, function(itemA){ return _.includes(B, itemA.a) })
}
然后:
<div ng-repeat="item in commonItems()">
{{item.c}}
</div>