2014-02-25 1 views
0

백본보기와 같이 렌더링 할 마리오네트 레이아웃을 얻으려고합니다. 즉, 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); 

그러나, 응용 프로그램에서 쇼를 호출하면 TemplateNotFoundError가 발생합니다.

마리오네트를 템플릿없이 렌더링 할 수있는 방법을 찾고 있습니다. 라이브러리에서 렌더링 기능을 사용하지 않아도됩니다.

var HeaderBar = Backbone.Marionette.Layout.extend({ 
    template: _.template("<div></div>"), 
    id: "headerBar" 

}); 

+0

템플릿을 필요로하는 이유는 영역을 렌더링 할 수 있기 때문입니다. 레이아웃에서 영역을 사용하지 않는다면 ItemView를 사용해야합니다. 그렇다면 영역 컨테이너를 렌더링하는 것이 필요합니다. –

답변

0

Layout의 템플릿을 필요 참조하십시오. 레이아웃이있는 지역을 사용하지 않는 경우 Layout을 사용할 필요가 없습니다. 대신 ItemView을 사용하십시오.

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

그런 다음 해당 지역에서는 정상적으로 사용하십시오.

그러나 영역에 이 필요하면 예 : Layout 템플릿이 필요합니다.

관련 문제