我正在尝试将视图附加到某个区域,但我收到错误消息:
undefined is not a function
这是我的模板:
<div id="container"></div>
<script id="my-layout" type="text/html">
<h2>Hello!</h2>
<div id="menu"></div>
<div id="content"></div>
</script>
<script id="menuTemp" type="text/template">
<p>I am from Menu</p>
</script>
这是我的剧本:
var MenuView = Backbone.View.extend({
template:_.template($('#menuTemp').html()),
initialize:function(){
this.render();
},
render:function(){
this.$el.html(this.template);
return this;
}
});
container = new Backbone.Marionette.Region({
el: "#container"
});
MyLayout = Backbone.Marionette.LayoutView.extend({
template: "#my-layout",
regions: {
menu: "#menu",
content: "#content"
}
});
// Show the "layout" in the "container" region
layout = new MyLayout();
container.show(layout);
layout.menu.show(new MenuView().render().el); //not working
有人帮我解决这个问题吗? 提前谢谢。
答案 0 :(得分:1)
问题是你的最后一行:
layout.menu.show(new MenuView().render().el)
Marionette自动处理渲染视图。所以你只需要打电话:
layout.menu.show(new MenuView())
它会很棒。