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();
    },

拥有一个全局控制器实例,还是在每次需要时创建它们更好?我很困惑。感谢任何建议。

4

1 回答 1

0

我想你的问题比控制器更普遍。我的偏好是,如果需要跨不同模块共享并且需要跨操作持久化数据,则应该只使用全局实例。

如果没有这样的需求,你不应该浪费资源来拥有它们。此外,您拥有的全局实例越少,在您的应用程序中维护资源就越容易。

希望有帮助!

于 2013-06-14T17:49:35.150 回答