2015-09-28 2 views
1

Я пытаюсь отобразить представление макета приложения без использования области уровня приложения (они устарели).Backbone.Marionette: Render 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

Похоже недосмотру мне. Я создал код, который показывает вашу проблему: http://codepen.io/anon/pen/GpNLvw. Вы рассматривали вопрос о регистрации с Marionette? На данный момент я бы использовал область приложения –

+0

Как я понимаю [docs] (http://marionettejs.com/docs/v2.4.3/marionette.application.html#application-regions), вы можете настроить вид макета на 'App .rootView'. – antejan

ответ

0

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

Это имеет смысл, потому что обычно тело имеет несколько дочерних элементов. Если бы область была определена на теле, тогда существовал бы только один элемент под телом (представленный представлением, прикрепленным к этой области верхнего уровня).

Что касается шоу-событие не срабатывает, вы можете просто подключить к визуализации событий (рендеринга или до: визуализации):

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

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

  • Нет связанных вопросов^_^