2014-02-25 38 views
0

我试图让一个木偶布局呈现为骨干视图。也就是说,我已经声明了一个tagName和一个id,并且我希望它能根据这个生成一个dom元素。对于这样一个简单化的元素来说,为此只需要创建一个模板存根似乎是多余的。将Marionette布局呈现为像骨干视图

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); 

然而,从应用程序中调用显示抛出TemplateNotFoundError。

我正在寻找一种方法来让木偶渲染这个没有模板,也不需要commandeer库中的渲染功能。

+0

它需要模板的原因是您可以渲染区域。如果您在布局中未使用区域,则应使用ItemView。如果你是,所有你需要做的就是渲染区域容器 –

回答

0

Layout小号需要一个模板,因为他们需要使它们的内部区域。如果您的布局没有使用任何区域,则不需要使用Layout;请使用ItemView代替:

var HeaderBar = Backbone.Marionette.ItemView.extend({ 
    tagName: "div", 
    id: "headerBar" 
}); 

然后用它作为您所在地区的常态。

但是,如果你确实需要HeaderBar以内的区域,那么是的,你需要一个带有Layout的模板。