我嘗試使用AngularJS構建模塊化應用程序。我的第一個想法是組中的每個模塊由functionnality用這種文件夾結構:Modularize AngularJS應用程序:一個或多個AngularJS模塊?
/core
controllers.js
directives.js
app.js
/modules
/users
controllers.js
directives.js
/invoices
controllers.js
directives.js
/messages
controllers.js
directives.js
...
注意,「核心」文件夾中包含基本功能,將永遠是在應用程序。其他模塊可以獨立添加或刪除。
由於我的應用程序將會很大,我還希望使用延遲加載。我實施了這個解決方案:http://ify.io/lazy-loading-in-angularjs/這對我來說似乎是最簡單的方法。問題是它只爲控制器,服務,指令執行延遲加載......但不適用於AngularJS模塊。
我知道還有另一種方式可以延遲加載Angular模塊(http://blog.getelementsbyidea.com/load-a-module-on-demand-with-angularjs/),但我認爲這太方便了,因爲它使用Angular的核心方法。
我的問題是:是否有意義我的情況下使用,我的每個模塊不同AngularJS模塊,像這樣:
angular.module('core', ['ngRoute', 'users', 'invoices', 'messages'])
angular.module('users')
angular.module('invoices')
angular.module('messages')
什麼是這種方法的優勢在哪裏? AngularJS模塊是否有用 - 目前 - 僅適用於Angular的第三方模塊?
我在問這個,因爲AngularJS 2.0會支持本地延遲加載。谷歌的MiškoHevery說:「你應該按視圖進行分組,因爲視圖會在不久的將來延遲加載」,並且我們應該在每個應用程序中使用一個模塊,請參閱此處:https://www.youtube.com/watch?v=ZhfUv0spHCY&t=34m19s
對於大型應用程序只使用一個模塊,我的應用程序是這樣的:
angular.module('core', ['ngRoute']);
然後延遲加載我的控制器,服務和指示基於路線或看法嗎?