2013-08-26 37 views
2

AngularJS框架是否以預定義的順序執行上述所有內容,或者由程序員完成?AngularJS服務,工廠和供應商的執行順序?

+0

我會猜測它是基於所請求模塊的依賴關係的任意拓撲排序。 –

+0

看看這個答案是否有幫助:[「angularJS $ on event handler trigger order」](http://stackoverflow.com/a/17452084/1095616)。 – Stewie

回答

3

就術語而言,工廠可以生成服務,供應商向請求它們的組件提供服務。如果你的一些服務依賴於其他服務,那麼肯定會有一些服務和提供者的替代執行。確保所有這些事情都以正確的順序發生,以允許所有服務被實例化,這是Angular依賴注入的工作。

要問的一個問題是,爲什麼你關心工廠函數運行的順序?如果你正確地聲明瞭你的依賴關係,並且你的服務被適當地分離了,Angular應該爲你處理事情。您可能遇到的唯一一個異乎尋常的情況是循環依賴,您可以看到here的一些討論。

4

提供者和常量是在配置階段創建的,而工廠,服務和值是在配置階段之後創建的(因此您不能將它們注入到配置中)。

有沒有其他細粒度的差異,據我所知(這意味着你可以假定所有的服務 - 通過我的意思是任何類型的供應商 - 你注入將提供給你)