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

时间:2016-02-25 18:38:39

标签: angularjs

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

如果我正在与Sodas合作,并且我希望按品牌过滤作为起点我设置了这个:

  <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;
      }
  }

Working Plunker

虽然这有效但我希望有一个更好/更生产可行的解决方案,可以保持干燥,考虑到我将添加多个&#39;&#39;复选框(如果它是苏打水,也许更多的对象属性将是颜色,味道等)。

0 个答案:

没有答案