0

ng-repeat複数のカテゴリのチェックボックスでアイテムのリストをフィルタリングしたいと思います。

このAngularJS の複数のチェックボックスによるフィルタリング を読み、Egghead によるビデオを見ましたが、単純なforループでエラーが発生し、理解できません:

ReferenceError: i is not defined 

ここにコードのプランカーがあります:http://plnkr.co/edit/p538ALfs00JTFQ6mKT9j

ご協力ありがとうございました

4

1 に答える 1

0

厳密モード ( 'use strict';) を使用する場合は、変数を宣言する必要があります。定義されていない(含まれてcheckboxFilterいる)多くの変数を使用しています。iscript.js:22-23 を次のように変更することで、最初の問題を回避できます。

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

その後、さらに3つの問題があります...

  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 に答える