2016-01-12 59 views
1

我一直在关注AngularJS的一些教程,我发现有多种方法来初始化Controller。AngularJS - 初始化控制器的正确语法是什么?

例如,下面的代码是基于AngularJS文档:

angular.module('todoList', []) 
.controller('todoListCtrl', ['$scope', 
    function ($scope) { 
     ... 
    } 
]); 

然而,该代码也可以工作:

angular.module('todoList', []) 
.controller('todoListCtrl', 
    function ($scope) { 
     ... 
    } 
); 

优于另一种方法?

回答

1

第二个语法不是小型化安全的。一旦缩小,uglifier将重命名为$scope,这意味着它不能被AngularJS注入器正确注入,因为注入器使用名称匹配来确定要解析哪个依赖关系。

第一种语法是为了解决这个问题而添加的,并且是您应该用于生产应用程序的语法。

+0

我从来没有听说过'uglifier'这个名字,这可能是我的前身 –

+0

Closure,Grunt/gulp包,RequireJS,Webpack的一些工具......它们都有一个“uglifier”,它将代码库重命名为它紧凑。例如:https://www.npmjs.com/package/gulp-uglify –

相关问题