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();
});
次のコードは機能しますが、ビュー定義の外に配置されるため、適切なbackbone.js(MVC)コードのようには感じられません。
itemlist.fetch().complete(function(){