2014-02-25 64 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的模板。