Angularjs中包含多个复选框的筛选器列表

时间:2013-06-24 12:49:42

标签: angularjs checkbox filter angularjs-ng-repeat

我想过滤带有多个catgories复选框的ng-repeat项列表。

我读了这个Filtering by multiple checkboxes in AngularJS并观看了Egghead的视频,但我在一个简单的for循环中出错,我不明白:

ReferenceError: i is not defined 

这是一个代码为http://plnkr.co/edit/p538ALfs00JTFQ6mKT9j

的plunker

谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

如果您要使用严格模式('use strict';),则需要声明变量。您的checkboxFilter使用了许多从未定义的变量(包括i)。您可以通过将script.js:22-23更改为:

来解决您的初始问题
      var i,j,k,filter_cat,filter_value,filter_name,matchingItems = [];

之后还有其他三个问题......

  1. 第37行,此代码正在查找名为filter_catitems[i].filter_cat的属性,当您想要查找值为filter_cat的属性名称时,这是你想要什么:items[i].[filter_cat]
  2. 您的json数据具有小写字段名称,而您的代码正在搜索大写字母(类型与类型)
  3. 您的json数据具有小写值,您的代码正在搜索大写(Fruit vs fruit)
  4. 这是一个让您走上正确轨道的部分编辑。你仍然需要修改你的json或比较小写(我部分修改你的json):http://plnkr.co/edit/d7p4QthXJg4ao34ATWla?p=preview