1
我在查看爲什麼模型沒有出現在收藏視圖實例化時遇到問題。數組被調用,當我打電話給notes.models
時,我得到正確的記錄數。但是,console.log(note)
應該被調用,沒有任何反應。所以,抓取似乎正在工作,並有數據,我可以在響應中看到它,它只是沒有被傳遞到collection.each
視圖。歡迎任何幫助。這是一切。調用集合時,模型沒有填充數據。 Backbone和Django-Tastypie
TastpieCollection和TasttypieModel來自http://paltman.com/2012/04/30/integration-backbonejs-tastypie/這似乎工作得很好。
$(function() {
// Note: The model and collection are extended from TastypieModel and TastypieCollection
// to handle the parsing and URLs
window.Note = TastypieModel.extend({});
window.Notes = TastypieCollection.extend({
model: Note,
url: NOTES_API_URL
});
// starts by assigning the collection to a variable so that it can load the collection
window.notes = new Notes();
window.NoteView = Backbone.View.extend({
className: "panel panel-default note",
template: _.template($('#notes-item').html()),
initialize: function() {
_.bindAll(this, 'render');
this.model.bind('change', this.render);
},
render: function() {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
window.NoteListView = Backbone.View.extend({
id: "notes-block",
className: "panel panel-info",
template: _.template($('#notes-item-list').html()),
initialize: function() {
_.bindAll(this, 'render');
this.collection.bind('change', this.render);
},
render: function() {
this.$el.html(this.template());
this.collection.each(function(note){
//var view = new NoteView({ model: note });
console.log(note);
//$('#notes-list').append(view.render().el);
});
console.log('done');
return this;
}
});
window.NotesRouter = Backbone.Router.extend({
routes: {
"": "list",
'blank': 'blank'
},
initialize: function() {
this.notesView = new NoteListView({
collection: window.notes
});
notes.fetch();
},
list: function() {
$('#app').empty();
$('#app').append(this.notesView.render().el);
console.log(notes.length);
},
blank: function() {
$('#app').empty();
$('#app').text('Another view');
}
});
window.notesRouter = new NotesRouter();
Backbone.history.start();
})
在嘗試使用'this.collection.each'之前,確定'fetch'(這是一個AJAX調用)從服務器返回嗎? –
我很確定。我將notes.fetch移到了一堆不同的位置。不用找了。只是爲了檢查,我刪除了抓取,所以它不會調用任何東西,並且notes.models中沒有任何東西。所以抓取工作正常。 –
嘗試使用'console.log(this.collection.toJSON())','console.log'將實時引用放入控制檯中,因此當您調用console.log時,您在控制檯中看到的內容不一定就是那裏的內容。 –