Backbone.js を純粋にフロントエンド側で使用して、その非常に優れた機能の一部を活用していますが、苦労しています。
1 つの div の data-json 属性内に JSON 配列を取得します。
<div class="json-data" data-json = "[{ img: "aaa", price: "Bla Bla"... }]">
私は次のようにロードします:
//CoffeeScript
@baseCollection = new ComparisonCollection $(@el).find(".json-data").data("json")
コレクションが正しく作成されます。予想通り43モデルあります。作成後、この正規表現 /Unknown/.test(model.get("price"))を使用してモデルを除外し、価格が「不明」で始まるアイテムを除外します
そのコードは次のようになります。
@baseCollection.each (obj)->
if /Unknown/.test(obj.get("price"))
obj.collection.remove(obj)
, @
私のコレクションには、価格 == 「不明」または「不明」のオブジェクト/モデルが 10 個 あり、そのうち 5 個だけが削除されます。正規表現は正しく、ループは IF ブロックに 10 回入ります...
remove() メソッドの理解に何か問題があると思います...