У меня есть макет с областью. Когда макет инициализирован, я хочу, чтобы он автоматически инициализировал предустановленный вид, чтобы сделать его в своей области, и покажите/закройте его, когда сам макет отображается/закрыт.Auto init и показать представление в регионе на марионеточной макет
Текущий пример из 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());
Этот пример показывает, что макет должен быть сначала показано, и после я могу затем INIT и показать вид ребенка. (выше, если я покажу 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
Этот подход, однако, ничего не делает - ошибок нет.