2015-12-03 95 views
0

我是angularjs的新手。我看到人們寫下如下代碼寫入函數依賴注入器

angular.module('phonecat', ['dotjem.routing']). 
    config(['$stateProvider', function($stateProvider) { 
    $stateProvider 
     .state('phones', { views: { 'main': { template: 'phones.html' } }) 
     .state('tablets', { views: { 'main': { template: 'tablets.html' } }); 
}]); 

我明白[]是注入依賴關係。我知道我們正在注入$ stateProvider。但是寫第二個參數即函數的用處是什麼。僅僅是句法和服務於任何特定的目的?

回答

1

第一個是字符串文字。這樣做的唯一目的是爲了避免縮小和/或混淆的問題。該字符串將生存下來。

從那裏,他們只是匹配實際函數參數1對1。在這一點上,你可以命名$stateProvider任何你想要的。只要字符串匹配服務的實際名稱。唯一重要的是他們按正確的順序。

此代碼將很好地工作:

angular.module('phonecat', ['dotjem.routing']). 
    config(['$stateProvider', function(pizza) { 
    pizza 
     .state('phones', { views: { 'main': { template: 'phones.html' } }) 
     .state('tablets', { views: { 'main': { template: 'tablets.html' } }); 
}]); 
+0

什麼時候應該使用這種格式? – Hacker

+0

@Hacker,永遠。如果你不是手工做的,你應該有一個構建過程來爲你做好照顧(比如'ng-annotate',gulp/grunt插件等)。否則,你不能安全地縮小你的代碼(你應該始終在生產中)。 – Antiga

+0

所以,你的意思是說寫作.controller('myCtrl',函數($ scope,$ http,$ filter,$ rootScope,$ cookieStore,$ sce)不是首選模式嗎? – Hacker