AngularJs FilterBy属性a在数组A中,其中a存在于数组B中

时间:2015-10-28 11:40:43

标签: angularjs

我正在使用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执行此操作?

1 个答案:

答案 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>