一尘不染

定义AngularJS控制器时使用数组符号的原因

angularjs

抱歉,这个问题听起来太明显了。

我最近开始探索和学习AngularJS。我已经看了一些不错的教程-

..还有其他一些我见过的。

我并不是说我已经阅读/研究了所有文档。

问题从这里开始-

现在,提一个问题,我发现Controller的定义在一个地方是不同的,而在其他地方则是不同的-

一个定义使用一种数组表示法(不确定官方术语)进行注入:

app.controller("MyCtrl", ['$scope', function($scope){
    $scope.someData = "Array notation";
}]);

就是这样,没有数组:

app.controller("MyCtrl", function($scope){
    $scope.someData = "non-array notation";
});

不说这是我要了解的唯一一件事,是的,我一定很想了解其中的区别。

两者之间有何主要区别?

非常感谢。

注意:我确实在SO中搜索了类似的问题,但是找不到我想要的东西。 抱歉。


阅读 234

收藏
2020-07-04

共1个答案

一尘不染

所不同的是,当第二个被最小化时,参数名称将被最小化,而angular将不再能够检查参数以找出要注入的依赖项。字符串中具有依赖项的数组语法意味着它是缩小安全的。

有一个称为的库ng-annotate,它将第二个示例更改为第一个示例,以便代码再次可以安全地进行压缩。

2020-07-04