Marionette 嵌套模块有最大层数?
Marionette nested module has a maximum layer?
我正在与 Marionette 合作,
我正在使用模块来组织功能,但是我遇到了模块变成 undefined
的错误。测试用例为:
app.module('MainApp', function (MainApp, app, Backbone, Marionette, $, _) {
});
app.module('MainApp.TestApp', function (TestApp, app, Backbone, Marionette, $, _){
TestApp.Controller = {
test : function (){
console.log('test');
}
};
});
app.module('TestApp.TestApp2', function (TestApp2, app, Backbone, Marionette, $, _){
TestApp2.Controller = {
test : function (){
console.log('test2');
}
};
});
如果我调用 app.MainApp.TestApp.Controller.test();
,它会正确打印 test
。但是,如果 app.MainApp.TestApp.TestApp2.Controller.test();
它显示 Uncaught TypeError: Cannot read property 'Controller' of undefined
这是否意味着我只能在 Marionette 中使用 3 层嵌套模块?还是我哪里弄错了?
据我所知,没有记录嵌套模块深度的限制。
您应该使用以下命名模式定义子模块:
Application.Module.SubModule
所以你的错误是你定义了 TestApp2
而没有 MainApp
.
正确方法:
app.module('MainApp.TestApp.TestApp2', function (TestApp2, app){
TestApp2.Controller = {
test : function (){
console.log('test2');
}
};
});
我正在与 Marionette 合作,
我正在使用模块来组织功能,但是我遇到了模块变成 undefined
的错误。测试用例为:
app.module('MainApp', function (MainApp, app, Backbone, Marionette, $, _) {
});
app.module('MainApp.TestApp', function (TestApp, app, Backbone, Marionette, $, _){
TestApp.Controller = {
test : function (){
console.log('test');
}
};
});
app.module('TestApp.TestApp2', function (TestApp2, app, Backbone, Marionette, $, _){
TestApp2.Controller = {
test : function (){
console.log('test2');
}
};
});
如果我调用 app.MainApp.TestApp.Controller.test();
,它会正确打印 test
。但是,如果 app.MainApp.TestApp.TestApp2.Controller.test();
它显示 Uncaught TypeError: Cannot read property 'Controller' of undefined
这是否意味着我只能在 Marionette 中使用 3 层嵌套模块?还是我哪里弄错了?
据我所知,没有记录嵌套模块深度的限制。
您应该使用以下命名模式定义子模块:
Application.Module.SubModule
所以你的错误是你定义了 TestApp2
而没有 MainApp
.
正确方法:
app.module('MainApp.TestApp.TestApp2', function (TestApp2, app){
TestApp2.Controller = {
test : function (){
console.log('test2');
}
};
});