У меня есть макет, с регионом. Когда макет инициализируется, я хочу, чтобы он автоматически инициализировал предустановленное представление для его области и показывал/закрывал его, когда сам макет отображается/закрывается.
Текущий пример из https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.layout.md:
AppLayout = Backbone.Marionette.Layout.extend({
template: "#layout-template",
regions: {
mainRegion: "#menu",
content: "#content"
}
});
var layout = new AppLayout();
ParentAppLayout.show(layout); // Render the Layout to a parent
layout.mainRegion.show(new SubView());
В этом примере показано, что сначала должен быть показан макет, и после я могу инициализировать и показать дочернее представление. (выше, если я покажу SubView
до того, как будет показан сам layout
, ничего не произойдет, я полагаю, потому что селектор не существует в DOM?)
Для повторно используемого макета я хочу добавить это представление представления отправки в сам макет, а не добавлять его вручную везде, где используется представление. Как этого добиться?
AppLayout = Backbone.Marionette.Layout.extend({
template: "#layout-template",
regions: {
mainRegion: "#menu",
content: "#content"
},
initalize: function() {
this.mainRegion.attachView(new SubView());
},
onShow: function() {
this.mainRegion.show(this.mainRegion.currentView);
}
});
var layout = new AppLayout();
ParentAppLayout.show(layout); // Render the Layout to a parent, expecting the child view to also be created automatically
Однако этот подход тоже ничего не делает - никаких ошибок.