Autoinicialização e exibição de exibição em uma região em um layout de marionete
Eu tenho um layout, com uma região. Quando o Layout é inicializado, quero que ele inicialize automaticamente uma visualização pré-definida para fazer em sua região e mostre / feche quando o layout em si for mostrado / fechado.
Exemplo atual dehttps://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());
Este exemplo indica que o Layout deve primeiro ser mostrado,e depois Eu posso então iniciar e mostrar a visão infantil. (acima, se eu mostrar oSubView
antes de olayout
é mostrado em si, nada vai acontecer, eu assumo porque o seletor não existe no DOM?)
Para um layout reutilizável, quero adicionar este show de exibição de envio ao Layout em si, em vez de precisar adicioná-lo manualmente em todos os lugares em que a exibição é usada. Como isso pode ser alcançado?
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
Essa abordagem, no entanto, também não faz nada - não há erros.