現在、マリオネットベースのアプリケーションを構築しています。基本的に、複数のリージョンが定義されたマリオネットアプリケーションがあります。各リージョンは、さまざまなモジュールがビューを表示するためのコンテナとして機能します。各モジュールがそのコンテナに表示されているものを完全に制御できるようにしたいのですが、アプリケーションにこれらの領域を割り当ててもらいたいのです。簡単にするために、各モジュールには単純なItemViewがあるとしましょう。
これらの領域にモジュールビューを設定するための2つのアプローチを検討しています。
最初のアプローチでは、各モジュールが初期化されると、ビューが作成され、アプリケーションが呼び出されて、指定された領域にビューが表示されます。次に例を示します。
var app = new Marionette.Application();
app.addRegions({
regionA: "#regionA",
regionB: "#regionB"
});
app.module("moduleA", function(moduleA, app, ...){
moduleA.on("start", function(){
var viewA = new MyViewA();
app.regionA.show(viewA);
}
});
app.module("moduleB", function(moduleB, app, ...){
moduleB.on("start", function(){
var viewB = new MyViewB();
app.regionB.show(viewB);
}
});
2番目のアプローチは、各モジュールがそのビューを返す関数を公開する必要があることを示しています。アプリケーションは準備ができたらその関数を呼び出し、指定された領域にビューを固定します。
どちらのアプローチが良いかわかりませんので、喜んでご意見をお聞かせください。