我使用我的导航和布局管理路由器(是这样吗!?),并似乎有一个命中一个问题:骨干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;'? –