我从backbone.js 开始,用backbone-boilerplate 构建我的第一个项目。
我有一个名为 Navitem 的模块,其视图名为Sidebar
:
Navitem.Views.Sidebar = Navitem.Views.Layout.extend({
template: "navitem/sidebar",
tagName: 'ul',
beforeRender: function()
{
var me = this;
this.options.navitems.each(function(navitem)
{
//insertView from Layout datatype
me.$el.append(new Navitem.Views.Item({
model: navitem //select the 'ul' in sidebar view and append an Item with model navitem
}).render().el);
});
return this;
}
});
构建侧边栏时,会将包含许多Navitem.Model
' 的集合传入其中。调试后,model:navitem
似乎工作正常并将正确的navitem
模型传递给new Navitem.Views.Item({...})
. 该类看起来像:
Navitem.Views.Item = Navitem.Views.Layout.extend({
tagName: 'li',
template: 'navitem/default'
events: {
click: "navRoute"
},
navRoute : function()
{
app.router.go(this.model.get('target'));
return this;
}
});
模板看起来像<a href="#"><%= model.get('label') %></a>
.
出于某种原因,当我调用Item.render()
第一个代码块时,它会抱怨model
视图中未定义的内容。我似乎无法弄清楚为什么会这样。有什么想法吗?