我纯粹是在前端使用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"))筛选出模型,使用这个正则表达式来过滤价格以“未知”开头的项目。
该代码如下所示:
@baseCollection.each (obj)->
if /Unknown/.test(obj.get("price"))
obj.collection.remove(obj)
, @在我的收集,我有10个对象/模型的价格==“未知”或“未知”,其中只有5个被删除!正则表达式是正确的,循环进入IF块10次.
我想我对remove()方法的理解有问题.
发布于 2013-09-10 08:54:26
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所说的,您不会在修改视图的同时还在迭代它。
对不起,我不懂咖啡脚本!
https://stackoverflow.com/questions/18695168
复制相似问题