我正在尝试在backbone.js中做一个简单的集合,但我不明白为什么我的回调函数(在bind中指定)没有被调用。根据我从文档中的理解,当我执行fetch()时,应该触发重置事件。有什么建议? (代码如下)。
Customer = Backbone.Model.extend(
);
CustomerList = Backbone.Collection.extend({
model : Customer,
url : "test.php",
});
var ChartView = Backbone.View.extend({
el: $('body'),
initialize: function(){
_.bindAll(this, 'render');
this.collection.bind("reset", self.render);
this.collection.fetch(
);
},
render : function() {
console.log("render");
}
});
var chartView = new ChartView( { collection: new CustomerList()} );
})(jQuery);
答案 0 :(得分:1)
如果您使用的是主干1.0.0,则应将reset:true
传递给重置。此外,它只会set
收集的模型update
this.collection.fetch({reset:true});
确保来自url的响应是有效的json。只有在成功时才会触发reset
事件。
答案 1 :(得分:0)
检查一下。就像@nikoshr在https://stackoverflow.com/a/16538588/1211174上说的那样。有同步事件。因此,每次您可以捕获同步时强制主干重置集合
https://github.com/backbone-paginator/backbone.paginator/issues/164
this.collection.bind("sync", function(){
console.log('got sync');
this.render(){, this );