2014-09-13 32 views
3

我對於角模塊是如何工作的以及使用它們的最佳方式有點困惑。我在一本書中讀到,無論哪個模塊包含它們,服務都是全球可用的。過濾器和指令顯然也可以在整個應用程序的整個模板文件中使用。繼承和依賴注入如何與角模塊一起工作?

一個簡單的例子:

angular.module('main',[ 
    'one', 
    'two', 
    'three' 
]); 


angular.module('one',[]).service('oneService', ...); 
angular.module('two',[ 
    // angular-module 'one' does not have to be passed here 
]).controller(function(oneService){ 
    // available here 
    oneService.do(); 

}); 

angular.module('three',[]); 


// not a good idea 
angular.module('three').service('oneService', ...); 

這實際上導致了幾個問題要問我:

  • 什麼是「思考」有關角模塊,如果沒有真正封閉的好方法?
  • 除了語義和生成的文件夾結構(可以在不使用模塊的情況下完成) - 將一個應用程序分成不同模塊的好處是什麼?
  • 當模塊使用點符號時,是否有任何繼承automagic? angular.module('main')angular.mopdule('main.customers')
  • 將應用程序拆分爲不同的應用程序(而不是模塊)是一種可能的選擇,例如,每條路線一個應用程序,如果是這樣,那麼這將是一個好方法,as apps cannot contain other apps

回答

2

MISKO Hevery這裏討論它:

https://www.youtube.com/watch?v=ZhfUv0spHCY&t=34m19s

再有就是職位由娜奧米·布萊克:

http://blog.angularjs.org/2014/02/an-angularjs-style-guide-and-best.html

它引用這些文件:

https://google-styleguide.googlecode.com/svn/trunk/angularjs-google-style.htmlhttps://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub

而且角文檔states的最新版本:

...我們建議你打破你的應用程序的多個模塊 這樣的:

  • 用於各個模塊功能
  • 每個可重用組件的模塊(特別是指令和過濾器)
  • 而一個應用程序級模塊依賴於上述模塊幷包含任何初始化代碼。

摘要:

  • 模塊只是配置DI子系統的方式(至少到目前爲止)
  • ,如果你想使用的模塊通過功能分割你的應用程序,而不是按類型
  • 現在實際上建議您現在使用每個功能的一個模塊構建您的應用程序
  • 模塊不提供太多的好處的權利,但他們可能會在不久的將來,當意見延遲加載實現
+1

「模塊不提供太多的好處的權利,但他們在不久的將來可能會當延遲加載因爲意見得以實施「這實際上是我對自己的感覺,很高興從其他人那裏聽到它。非常感謝您的回答! – 2014-09-13 18:11:16