このコードは Marionette の例です。
AppLayout = Backbone.Marionette.Layout.extend(
{
template: "#layout-template",
regions:
{
menu: "#menu",
content: "#content"
}
});
var layout = new AppLayout();
layout.menu.show(new MenuView());
layout.content.show(new MainContentView());
最後の 2 行は私を混乱させます。なぜ読まないのですか:
layout.regions.menu.show(new MenuView());
layout.regions.content.show(new MainContentView());
誰かがなぜlayout.menuが機能し、layout.regions.menuが機能しないのか説明できますか?
テンプレートにアクセスしたい場合はどうすればよいですか? それはlayout.templateではないでしょうか?テンプレートとリージョンは、レイアウト内で同じ深さにあります。
マリオネット コードのコンストラクタ関数は次のとおりです。
// Ensure the regions are avialable when the `initialize` method
// is called.
constructor: function () {
this._firstRender = true;
this.initializeRegions();
var args = Array.prototype.slice.apply(arguments);
Marionette.ItemView.apply(this, args);
},