2015-04-22 16 views
0

我正在使用Marionette, 我使用模塊來組織函數,我怎麼會遇到一個錯誤,模塊變成undefined。測試用例是:Marionette嵌套模塊有一個最大層?

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層嵌套模塊?或者我犯了什麼錯誤?

回答

0

據我所知,嵌套模塊深度沒有記錄的限制。

你應該定義子模塊具有以下命名模式:

Application.Module.SubModule

所以你的錯誤是你沒有MainApp定義TestApp2

正確方法:

app.module('MainApp.TestApp.TestApp2', function (TestApp2, app){ 
    TestApp2.Controller = { 
     test : function(){ 
      console.log('test2'); 
     } 
    }; 
}); 

fiddle

+0

感謝您的幫助! –