我试图让木偶布局像骨干视图一样渲染。即,我已经声明了一个tagName和一个id,我想让它根据它生成一个dom元素。对于这样一个简单的元素,为此只需要创建一个模板存根似乎是多余的。
HTML:
<body><div id="page"></div></body>
测试代码:
var HeaderBar = Backbone.Marionette.Layout.extend({
tagName: "div",
id: "headerBar"
});
/*========== APP Tests ============*/
App = Marionette.Application.extend({});
var MyApp = new App();
MyApp.addRegions({
pageRegion: "#page"
});
var header = new HeaderBar();
MyApp.pageRegion.show(header);
但是,从应用程序调用show会抛出TemplateNotFoundError。
我正在寻找一种方法让Marionette在没有模板的情况下渲染它,而无需在库中使用渲染功能。
答案 0 :(得分:2)
尝试
var HeaderBar = Backbone.Marionette.Layout.extend({
template: _.template("<div></div>"),
id: "headerBar"
});
答案 1 :(得分:0)
Layout
需要模板,因为它们需要在其中呈现区域。如果您没有在布局中使用任何区域,则无需使用Layout
;改为使用ItemView
:
var HeaderBar = Backbone.Marionette.ItemView.extend({
tagName: "div",
id: "headerBar"
});
然后像您所在地区一样正常使用它。
但是,如果你需要HeaderBar
内的区域,那么是的,你需要一个Layout
的模板。