angularjs从包含对象的数组中过滤

时间:2014-11-18 19:25:03

标签: javascript angularjs ionic-framework angular-filters

这可能很简单,但我不知道如何去做。 我创建了两个范围数组(不确定控制器是否需要)和控制器中的实际列表

$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,但不确定如何做到

1 个答案:

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