这可能很简单,但我不知道如何去做。 我创建了两个范围数组(不确定控制器是否需要)和控制器中的实际列表
$scope.tagFilter = [{tag_id:1,tag_name:test},{tag_id:2,tag_name:test2}];
$scope.categoryFilter = [{cat_id:1,cat_name:test3},{cat_id:2,cat_name:test4}]
我的实际清单
$scope.list = [{list_id:1,category_id:1,tag:1},...]
是否可以创建一个过滤器,我可以将tag_id与list中的tag和cat_id与category_id进行比较 我在考虑创建angular.module.filter,但不确定如何做到
答案 0 :(得分:1)
您可以编写filter
函数,其行为方式如下:
var allowed_tags = $scope.tagFilter.map(function(item){
return item.tag_id;
})
var allowed_cat = $scope.categoryFilter.map(function(item){
return item.cat_id;
})
var filtered = $scope.list.filter(function(i){
return ((allowed_tags.indexOf(i.tag) != -1) &&
(allowed_cat.indexOf(i.category_id) != -1));
})
console.log(filtered);