0

私のアプリケーションでは、すべてのモジュールにコントローラーがあり、メディエーターとして機能しています。それらをインスタンス化するのに適した場所は次のとおりです。

  1. 次のようなメインコントローラーで:

    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();
            ...       
        }
    });
    
  2. または、次のようなモジュールの初期化メソッドで:

    Module1.addInitializer(function(){      
        Module1.controller = new Controller({
            ...
        });
    }); 
    

メインコントローラーから呼び出します:

    doSomething: function(){ 
      App.Module1.controller.doSomething();
    },
    doSomethingElse: function(){ 
      App.Module1.controller.doSomethingElse();
    },

コントローラのグローバル インスタンスを 1 つ持つのと、必要になるたびに作成するのとではどちらがよいでしょうか? よくわかりません。提案をお待ちしております。

4

1 に答える 1

0

あなたの質問は、コントローラーだけではなく、より一般的なものだと思います。私の好みは、異なるモジュール間で共有する必要があり、操作間でデータを永続化する必要がある場合にのみ、グローバル インスタンスを使用することです。

そのようなニーズがない場合は、リソースを無駄にするべきではありません。さらに、グローバル インスタンスが少ないほど、アプリ内のリソースを維持しやすくなります。

その助けを願っています!

于 2013-06-14T17:49:35.150 に答える