我使用我的導航和佈局管理路由器(是這樣嗎!?),並似乎有一個命中一個問題:骨幹DIV沒有粉刷
backboneQuote.Routers.ApplicationRouter = Backbone.Router.extend({
routes: {
"" : "home",
"edit/:id": "quoteEdit"
},
initialize: function(){
this.headerView = new backboneQuote.Views.headerView();
$('.header').html(this.headerView.render().el);
if(!this.itemsView){
this.items = new backboneQuote.Collections.ApplicationCollection([
{id: 1, name: "item 1"},
{id: 2, name: "item 2"},
{id: 3, name: "item 3"}
]);
this.itemsView = new backboneQuote.Views.itemsView({collection: this.items});
}
this.content = $('.container');
},
home: function(){
this.content.html(this.itemsView.render());
},
quoteEdit: function(id){
this.editQuoteView = new backboneQuote.Views.editQuoteView({model: this.items.where({id: parseInt(id, 10)})});
$('#editQuote').html(this.editQuoteView.render().el);
this.content.html($('#editQuote').html());
}
});
我itemsView渲染的東西:
renderItem: function(model){
var itemView = new backboneQuote.Views.itemView({model: model});
itemView.render();
$(this.el).append(itemView.el);
return this;
},
render: function(){
this.collection.each(this.renderItem);
},
我點擊該導航應用回「家」的功能(click事件被解僱罰款)的元素,但「this.itemsView」的內容從來沒有似乎被放回到「this.content」div中。任何人都可以在這裏發現任何錯
作爲另一個巨大的幫助,如果任何人都可以提供任何他們在這裏看到的任何整體BackboneJS智慧,那麼這將是一個巨大的幫助。
在home函數中,'render'不返回html。你需要調用'.el'屬性,就像你在'qouteEdit'中完成的那樣。我認爲這是一個錯誤而不是代碼中的錯字。 –
@AmithGeorge你會認爲這可能是一個錯字,但不,我還在學習!我得到這個錯誤:「未捕獲的類型錯誤:無法讀取未定義的屬性'el'當我在末尾添加.el時... – benhowdle89
您的意思是'this.itemsView.render()'返回undefined?你可以驗證itemsView中的render函數是否在結尾有'return this;'? –