角度内联过滤器“控制器端”

时间:2016-09-22 12:32:16

标签: javascript angularjs

我选择了正确选择后返回的类别 如果从列表

中选择了漫画,{{cat}}的Html视图将显示漫画
$scope.selectCategory = function (newCategory) {
       console.log(newCategory);
        $scope.cat = newCategory;
        selectedCategory = newCategory;
        $scope.selectedPage = 1;
    }

但是我想通过此类别控制器端过滤对象数组 不是通过我很清楚的视图中的常用内联过滤器

如果我在漫画

下面的示例中手动添加类别
$scope.edition_products = $filter('filter')
 ( $scope.filteredItems, {approved: true, category: "Comics"});

仅返回已批准为真的类别漫画,以便过滤器正常工作

但是如何通过内联$ scope.cat

来使其动态化

e.g。

$scope.edition_products = $filter('filter')
( $scope.filteredItems, {approved: true, [$scope.cat]} 

请注意这不起作用

1 个答案:

答案 0 :(得分:1)

控制器中的过滤器不会自动触发。每次选择类别时都必须运行过滤器,因此在selectCategory函数中,您必须重新运行过滤器

$scope.selectCategory = function (newCategory) {
   console.log(newCategory);
   $scope.cat = newCategory;
   selectedCategory = newCategory;
   $scope.selectedPage = 1;
   $scope.edition_products = $filter('filter')($scope.filteredItems {approved: true, category: $scope.cat});
}

每次更改类别时,这样做都会过滤数据。