2015-09-28 84 views
1

我想渲染应用程序的布局视图而不使用应用程序级区域(它们已被弃用)。Backbone.Marionette:渲染LayoutView而没有应用程序区域

MyLayoutView = Marionette.LayoutView.extend({ 
    el: 'body', 

    regions: { 
     ... 
    }, 

    onBeforeShow: function() { 
     // render child regions 
    } 
}); 

App = new Marionette.Application(); 
App.on('start', function() { 
    this.view = new MyLayoutView(); 
    this.view.render(); 
}); 

呼叫view.render();不会触发节目,并且附上事件,所以视图的元素不被添加到DOM。那么,我们应该如何在不使用区域的情况下创建顶层布局视图?

+0

这似乎是一个监督我。我创建了一个codepen,显示你的问题:http://codepen.io/anon/pen/GpNLvw。你有没有考虑用木偶录制一个问题?现在,我会使用一个应用程序区域 –

+0

据我了解[文档](http://marionettejs.com/docs/v2.4.3/marionette.application.html#application-regions),您可以将您的布局视图设置为'应用程序.rootView'。 – antejan

回答

0

我认为这个想法是在不使用顶级区域的情况下在body元素上创建布局视图。

它是有道理的,因为通常身体有多个子元素。如果区域被定义在身体上,那么身体下方只有一个单元(由附加到该顶级区域的视图表示)。

至于未触发Show事件,你可以钩到渲染事件(或呈现前:渲染):

onRender: function() { // render child regions }