2013-04-11 4 views
0

Я пытался создать пример, чтобы продемонстрировать область и макет объекта Backbone.Marionette. Но я застрял в макете, хотя я называю layout.region.show(), он не отображается нигде в DOM.Вид не отображается в backbone.marionette

Полный пример можно найти в этом JsFiddle.

Это расположение части:

AppLayout = Backbone.Marionette.Layout.extend({ 
template: "#layout-template", 
    el : "layout-containr", 

regions: { 
    menu: "#menu", 
    content: "#content" 
} 

});

шаблон макета:

<script id="layout-template" type="text/template"> 
<section> 
    <div id="menu"></div> 
    <div id="content"></div> 
</section> 

Вот как я хочу показать расположение:

var layout = new AppLayout(); 
layout.render(); 
layout.menu.show(gridView); 

определение GridView можно найти здесь:

var GridView = Backbone.Marionette.CollectionView.extend({ 
itemView: GridRow, 
    el:'#menu' 

}); 

Полный примерможно найти в этом JsFiddle.

И у меня есть бесплатный вопрос:

Как макет будет знать , где он должен быть присоединен ??? Я не нашел его нигде в сети, что заставляет меня уверенно, что я упускаю некоторые понятия здесь.

ответ

0

Для отображения макета на прикладном уровне вам нужен более крупный регион.

Обычно, когда вы инициализируете приложение Marionette, у вас будут некоторые области верхнего уровня, чтобы отобразить макет, который вы хотите визуализировать позже.

App.addInitializer => 
    App.addRegions 
    menuRegion: '#header' 
    contentRegion: '#stage' # These DOM come from your application layout 

И затем в вашем контроллере вы показываете эти макеты в своем верхнем левом районе.

indexShow: -> 

    layout = new App.Layouts.SomeLayout() 
    App.contentRegion.show(layout) 

    someView = new App.Views.SomeView() 
    anotherView = new App.Views.AnotherView() 

    layout.someSubRegion.show(someView) 
    layout.anotherSubRegion.show(anotherView) 

И, как правило, не требуется el либо в вашем представлении или макете

+0

то, что я понимаю, что мне нужно, чтобы добавить рычаг область приложения и вызовите app.region.show (макет). Правильно ли я понял? –

+0

@ MD.SahibBinMahboob Точно – yujingz

+0

Обновлено [JSFiddle] (http://jsfiddle.net/mdsahib/MWmhe/7/) соответственно. Можете ли вы обратиться за помощью? Я чувствую, что это близко к решению :( –

Смежные вопросы