Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 带有多个复选框的角度过滤器_Angularjs - Fatal编程技术网

Angularjs 带有多个复选框的角度过滤器

Angularjs 带有多个复选框的角度过滤器,angularjs,Angularjs,我正在尝试实现多个基于复选框的过滤器,并想知道是否有更好的方法来实现(这不会让John Papa感到不安) 如果我正在使用苏打水,并且我想以品牌为起点进行过滤,我有以下设置: <input type="checkbox" ng-model="vm.brands.Pepsi"> Pepsi <input type="checkbox" ng-model="vm.brands.Coke"> Coke <ul> <li ng-repeat=

我正在尝试实现多个基于复选框的过滤器,并想知道是否有更好的方法来实现(这不会让John Papa感到不安)

如果我正在使用苏打水,并且我想以品牌为起点进行过滤,我有以下设置:

  <input type="checkbox" ng-model="vm.brands.Pepsi"> Pepsi
  <input type="checkbox" ng-model="vm.brands.Coke"> Coke
  <ul>
    <li ng-repeat="soda in vm.sodas | filter:vm.brandFilter">
      {{soda.name}}
    </li>
  </ul>

虽然这样做有效,但考虑到我将添加多个“组”复选框(如果是苏打,可能更多的对象属性将是颜色、味道等),我希望有一个更好/更可行的生产解决方案来保持干燥。

检查此答案:检查此答案:
  function brandFilter(soda) {
      if (!vm.brands) {
        return soda;
      }
      var brand = soda.brand;
      if (vm.brands[brand] === true) {
          return soda;
      } else {
          return false;
      }
  }