【发布时间】:2014-10-04 22:56:49
【问题描述】:
我有一个通过搜索框过滤的集合。执行搜索/过滤器时,我得到一个集合的结果。此集合是正确的,并且包含搜索中的预期模型。当我使用collection.reset(result) 时,它会添加一个主干集合,其中包含一个模型,该模型与结果集合无关,也不包含除标准集合主干内容之外的任何内容。
收藏
var Products = Backbone.Collection.extend({
model: Product,
url : '',
search : function(letters){
if(letters == "") return this;
var pattern = new RegExp(letters,"gi");
return new Products((this.filter(function(data) {
return pattern.test(data.get("title"));
})));
}
});
从外观上看:
search : function (ev){
var results = products.search($("#search").val());
console.log("result");
console.log(results);
this.collection.reset(results);
console.log("altered collection");
console.log(this.collection);
}
还有一张图片显示了它在不同的日志记录点包含的内容:
过滤后的集合(在结果之后)再次是 100% 正确的,并且是我所期望的。 this.collection 之前重置的状态也是正确的。我唯一要做的就是 this.collection.reset(result);并再次记录 this.collection。我听了'reset' 事件,当它触发时,显然没有要渲染的模型,我得到一个错误。
【问题讨论】:
标签: javascript backbone.js collections