我纯粹在前端使用Backbone.js来利用它的一些非常好的功能,但它给了我很多时间。
我在一个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“))来过滤掉以价格开头的项目”Unknown“
该代码如下所示:
@baseCollection.each (obj)->
if /Unknown/.test(obj.get("price"))
obj.collection.remove(obj)
, @
在我的收藏中,我有10个物品/模型 price ==“Unknown”或“Unknown” 只有5个被删除!正则表达式是正确的,循环进入IF块10次......
我想我对remove()方法的理解有问题......
答案 0 :(得分:0)
http://underscorejs.org/#filter 和 http://backbonejs.org/#Collection-set
obj.collection.set(obj.collection.filter(function(o){
return /Unknown/.test(o.get('price'));
}));
如果reg测试必须测试模型以确定集合,set
将执行智能删除/添加。另外,正如Ulugbek所说,你仍然在修改你的观点,同时仍然在迭代它
很抱歉,我不知道coffeescript!