2015-12-03 43 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