2015-06-28 258 views
3

我正在通過電子書來學習整個MEAN堆棧,並且在使用angular時遇到了一個奇怪的問題。AngularJS依賴注入順序

具體來說,我添加了角度路由到我的應用程序來呈現模板。起初,我無法完成它的工作,並多次查看代碼,尋找我可能犯的錯誤。最後,我已經爲主應用程序模塊鍵入了兩個依賴項的順序,而不是本書所示。

這不起作用

var mainApplicationModule = angular.module(mainApplicationModuleName, ['example', 'ngRoute']); 

這個工作

var mainApplicationModule = angular.module(mainApplicationModuleName, ['ngRoute', 'example']); 

所以我沒有一個確切的問題,但我想知道是否有人可以解釋爲什麼這個作品這條路?我一直無法找到關於依賴聲明順序的任何事情。如果它有幫助,我可以發佈更多的代碼。

+0

這可能是不相關的,但是你的模塊名稱是一個字符串? – sfletche

+0

是的,是的。你爲什麼要問? – natedog

回答

2

這來自Brad Dayley關於主題的書。 順序很重要,因爲要注入的模塊列表(依賴關係)必須按照「required」的順序排列。所以如果example模塊需要ngRoute,那麼ngRoute必須在example之前。

的angular.module()方法使用以下語法:

angular.module(name, [requires],[configFn])

name參數是在其下模塊在噴射器服務註冊的名稱。 requires參數是添加到注入器服務以供該模塊使用的模塊名稱的數組。

此解釋的確請求回答關於循環模塊引用在更復雜情況下的可能性。這裏是David M. Karr SO Answer Link的一些燈光。

+0

謝謝你,非常簡潔,清除它! – natedog

+0

我喜歡你的問題......教程不會擴展「angular.module()」的「requires」參數中模塊的「順序」。 – Nirmal