我希望Collection
在更新之前读取整个数据库表来填充 Backbone.js View
。
我正在使用fetch
并收听该reset
事件。
我的问题是在向服务器发出 http 请求之前会触发重置事件。
我的问题是:如何在从服务器接收回数据后呈现视图?
这是一个显示问题的 jsfiddle(在重置时放置了一个调试器):
编码:
$(document).ready(function() {
var Item = Backbone.Model.extend({
urlRoot : './items'
});
var ItemList = Backbone.Collection.extend({
model: Item,
url: './items/',
});
var ItemListView = Backbone.View.extend({
el: 'body',
initialize: function(myitemList) {
this.itemlist = myitemList;
this.itemlist.bind('reset', this.debuggThis());
},
debuggThis: function() {
debugger;
},
render: function() {
},
events: {
"keypress #new-item": "createOnEnter"
},
createOnEnter: function(e) {
}
});
$("#new-item").focus();
var itemlist = new ItemList();
var myitemListView = new ItemListView(itemlist);
itemlist.fetch();
});
以下代码有效,但感觉不像是正确的主干.js (MVC) 代码,因为它会被放置在视图定义之外:
itemlist.fetch().complete(function(){