リージョンのあるレイアウトがあります。レイアウトが初期化されると、事前に設定されたビューをその領域に自動的に初期化し、レイアウト自体が表示/閉じられたときにそれを表示/閉じます。
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
ただし、このアプローチも何もしません-エラーはありません。