關於module的定義為:angular.module(‘com.ngbook.demo’, [])。關於module函數可以傳遞3個參數,它們分別為:
- name:模塊定義的名稱,它應該是一個唯一的必選參數,它會在后邊被其他模塊注入或者是在ngAPP指令中聲明應用程序主模塊;
- requires:模塊的依賴,它是聲明本模塊需要依賴的其他模塊的參數。特別注意:如果在這里沒有聲明模塊的依賴,則我們是無法在模塊中使用依賴模塊的任何組件的;它是個可選參數。
- configFn: 模塊的啟動配置函數,在angular config階段會調用該函數,對模塊中的組件進行實例化對象實例之前的特定配置,如我們常見的對$routeProvider配置應用程序的路由信息。它等同於”module.config“函數,建議用”module.config“函數替換它。這也是個可選參數。
從moduleInstance的定義,我們能夠看出,angular.module為我們公開的API有:invokeQueue、runBlocks、requires、name、provider、factory、servic、value、constant、animation、filter、controller、directive、config、run。其中invokeQueue和runBlocks是按名約定的私有屬性,請不要隨意使用,其他API都是我們常用的angular組件定義方法,從invokeLater代碼中能看到這類angular組件定義的返回依然是moduleInstance實例,這就形成了流暢API,推薦使用鏈式定義這些組件,而不是聲明一個全局的module變量。