我一直在使用 Marionette 重写我的应用程序,但我有点困惑。
在我见过的每一种用法中,该Marionette.Application
对象似乎只是用作容器/顶级模块(它就是),仅此而已:
App = new Marionette.Application();
App.module('myModule', function(args) { /* ... */ });
App.on('event', function() {});
虽然我一直在测试,但有时需要创建一个新Application
实例并传入不同的选项。由于这个设置,这意味着我还需要调用必要的函数(例如addInitializer
,addRegions
.module
在我的新实例上
这与其他对象(如模型或视图)形成对比,其中大部分(如果不是全部)配置发生在配置选项中,甚至在对象被实例化之前:
MyModel = Backbone.Model.extend({
idAttribute: 'different-id',
defaults: {
'content-type': 'product'
},
sync: function() {
// override a function
return false;
}
});
与这些对象不同,我们必须Application
在进行任何配置之前实例化。
我误解了对象的Application
目的吗?它只是应该是一个通用的顶级容器吗?