下面的代码看起来好像在获取完成之前触发了 AccItemList 集合上的“重置”事件。为此,控制台的输出如下...
渲染
0
取来的
0
...所以“渲染”在集合中没有任何模型之前被调用,这显然是错误的,但同样令人困惑的是,即使在 fetch 成功回调中,集合中似乎也没有任何模型。我也尝试在路由器初始化程序中实例化 AccItemList 集合,但这并没有什么不同。我确定我缺少一些基本的东西,请帮忙,这让我发疯!
$(function () {
var AccItem = Backbone.Model.extend({
defaults: {}
});
var AccItemList = Backbone.Collection.extend({
model: AccItem,
url: "/Dashboard/Accommodation",
parse: function (response) {
this.add(response.AccItems);
}
});
var AccListView = Backbone.View.extend({
el: $("#temp"),
initialize: function () {
_.bindAll(this, 'render', 'renderAccItem');
this.collection = new AccItemList();
this.collection.on('reset', this.render);
var that = this;
that.collection.fetch({
success: function () {
console.log("fetched");
console.log(that.collection.models.length);
}
});
},
render: function () {
var that = this;
console.log("rendering");
console.log(this.collection.models.length);
}
});
var App = Backbone.Router.extend({
routes: {
"": "index"
},
index: function () {
},
init: function () {
var accItemView = new AccListView();
}
});
var app = new App();
app.init();
});