0

我想过滤ng-repeat具有多个类别复选框的项目列表。

我在 AngularJS 中通过多个复选框阅读了此过滤,并观看了 Egghead 的视频,但我在一个简单的for循环中有一个错误,我不明白:

ReferenceError: i is not defined 

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

谢谢您的帮助

4

1 回答 1

0

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

      var i,j,k,filter_cat,filter_value,filter_name,matchingItems = [];

在那之后你还有其他三个问题......

  1. 第 37 行,此代码正在查找名为filter_cat:的属性items[i].filter_cat,而您想要的是查找值为 的属性名称filter_cat,所以这就是您想要的:items[i].[filter_cat]
  2. 您的 json 数据具有小写的字段名称,并且您的代码正在搜索大写(类型与类型)
  3. 您的 json 数据具有小写值,并且您的代码正在搜索大写字母(水果与水果)

这是一个让您走上正轨的部分编辑。您仍然需要修改您的 json 或比较小写(我部分修改了您的 json):http ://plnkr.co/edit/d7p4QthXJg4ao34ATWla?p=preview

于 2013-06-24T13:29:39.250 回答