2014-09-02 1 views
1

여기 내 layoutView 정의입니다 :Marionettejs - layoutView 렌더링 할 때 자동으로 영역을 표시되도록하는 방법

var OuterLayout = Backbone.Marionette.LayoutView.extend({ 
    template: compiledTplFunc, 
    el: '#main', 
    regions: { 
     header: '#header', 
     content: '#content', 
     footer: '#footer' 
    }, 
    initialize: function() { 
     // alert('initializing'); 
     this.header.show(new Header()); 
     // this.footer.show(new Footer()); 
    } 
}); 

// 아래 경로 정의에 코드를 렌더링 할 수 있습니다

var AppRouter = Backbone.Marionette.AppRouter.extend({ 
    routes : { 
     '': 'index', 
     'about': 'about', 
     'app' : 'startApp', 
     'signup' : 'signup', 
     'login' : 'login' 
    }, 
    index : function() { 
     outerlayout.render(); 

     var Header = require('../header/header'); 
     var Content = require('../contentIndex/contentIndex'); 
     var Footer = require('../footer/footer'); 
     ol.header.show(new Header()); 
     ol.content.show(new Content()); 
     outerLayout.footer.show(new Footer());  
    }, ..... 

여러 가지 경로가 있습니다 , 렌더링 할 때 메뉴와 꼬리말을 경로에 모두 붙이고 싶지 않습니다. #header와 #footer와 같이 일부 지역을 자동으로 첨부하고 싶습니다. 이를 위해 무엇을해야합니까?

감사합니다.

답변

3

레이아웃의 onRender 기능에서 레이아웃으로 항상 렌더링하려는 것을 렌더링하면됩니다. 코드를 기반으로하면 다음과 같습니다.

OuterLayout.prototype.onRender = function() { 
    var Header = require('../header/header'); 
    var Footer = require('../footer/footer'); 
    this.header.show(new Header()); 
    this.footer.show(new Footer()); 
} 
+0

소리가 완벽합니다. 감사! –