私のアプリケーションでは、すべてのモジュールにコントローラーがあり、メディエーターとして機能しています。それらをインスタンス化するのに適した場所は次のとおりです。
次のようなメインコントローラーで:
App.MainController = Marionette.Controller.extend({ doSomething: function(){ var controller = new App.Module1.Controller(); controller.doSomething(); ... }, doSomethingElse: function(){ var controller = new App.Module1.Controller(); controller.doSomethingElse(); ... } });
または、次のようなモジュールの初期化メソッドで:
Module1.addInitializer(function(){ Module1.controller = new Controller({ ... }); });
メインコントローラーから呼び出します:
doSomething: function(){
App.Module1.controller.doSomething();
},
doSomethingElse: function(){
App.Module1.controller.doSomethingElse();
},
コントローラのグローバル インスタンスを 1 つ持つのと、必要になるたびに作成するのとではどちらがよいでしょうか? よくわかりません。提案をお待ちしております。