2013-04-22 49 views
0

我已經看到,Angular Seed帶有$註釋控制器參考,這意味着我可以聲明控制器的依賴關係。

DI documentation顯示構造函數需要與當前參數os Controller同步。

此外,在this documentation中,它顯示了此註釋的一種用法,在縮小的JS源代碼中有用。像這樣:

var MyController = function(renamed$scope, renamedGreeter) { 
    ... 
} 
MyController.$inject = ['$scope', 'greeter']; 

其中我找到了一個解釋here

所以,我的疑問是:

  1. 沒有針對此批註其它用途?
  2. 關於非縮小JS源代碼,有沒有優勢或劣勢不使用它?

在此先感謝。

+0

你能否澄清第二點 – 2013-04-22 14:34:35

+0

謝謝,我沒有看到這與第一點相同。刪除。 – 2013-04-22 14:37:44

回答

3

$ inject的目的是爲了確保在代碼縮小的情況下正確注入您的依賴關係。

有三種方法在AngularJS管理依賴 - DI in AngularJS

排列標記是我的首選方法,因爲它比$注射方法簡單。

爲了回答您的具體問題:

  1. 不,我不知道的另一個用途爲$注入。
  2. 如果您沒有使用鏈接文章中提到的前兩種方法之一,那麼如果有人縮小源代碼,您的代碼將無法正常工作。數組符號很簡單,它使您的代碼與縮小器兼容,所以我不知道爲什麼你不會使用它。
+0

非常感謝您的回答。 有些事情正在逐漸變得更加清晰。 – 2013-04-22 16:33:00

+0

Mark Sherretta你知道Google Closure Compiler是否可以正常工作? http://closure-compiler.appspot.com/home – 2013-04-25 19:56:15