angularjs – 在角度js中显示两个数组的交集
发布时间:2020-12-17 06:50:46 所属栏目:安全 来源:网络整理
导读:在角度我有$scope中的两个列表.一个是包列表,第二个是适用于它们的标记列表.考虑例如: $scope.packages = [ { name = "pkg1",tags = [ 1,3] },{ name = "pkg2",tags = [ 2,3] }]$scope.tags = [ { id = 1,name = "tag1" },{ id = 2,name = "tag2" },{ id =
在角度我有$scope中的两个列表.一个是包列表,第二个是适用于它们的标记列表.考虑例如:
$scope.packages = [ { name = "pkg1",tags = [ 1,3] },{ name = "pkg2",tags = [ 2,3] }] $scope.tags = [ { id = 1,name = "tag1" },{ id = 2,name = "tag2" },{ id = 3,name = "tag3" }] 我希望使用以下内容来显示: <ul> <li ng-repeat = "pkg in packages"> {{pkg.name}} <ul> <li ng-repeat = "tag in tags | filter : intersect(pkg.tags)"> {{tag.name}} </li> </ul> </li> </ul> 如何获得filter:intersect()功能? 解决方法
你可以在过滤器中使用.filter和.indexOf数组函数:
angular.module('myApp',[]).filter('intersect',function(){ return function(arr1,arr2){ return arr1.filter(function(n) { return arr2.indexOf(n) != -1 }); }; }); 然后对于HTML,它看起来像这样: <li ng-repeat="tag in tags | intersect: pkg.tags"> http://jsfiddle.net/8u4Zg/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |