Angularjs 以下两个控制器之间的差异

Angularjs 以下两个控制器之间的差异,angularjs,angularjs-controller,Angularjs,Angularjs Controller,我是个新手。我曾经面对过两种不同类型的控制器声明,我无法理解其背后的影响 vmyApp.controller('GreetingController', ['$scope', function($scope) { $scope.greeting = 'Hola!'; }]); 从上面的代码片段中,我了解到他们使用了一个依赖于控制器的函数,该函数有两个参数,一个参数为“$scope”,另一个参数为function 其他片段如下所示: vmyApp.controller('GreetingCon

我是个新手。我曾经面对过两种不同类型的控制器声明,我无法理解其背后的影响

vmyApp.controller('GreetingController', ['$scope', function($scope) {
 $scope.greeting = 'Hola!';
}]);
从上面的代码片段中,我了解到他们使用了一个依赖于控制器的函数,该函数有两个参数,一个参数为“$scope”,另一个参数为function

其他片段如下所示:

vmyApp.controller('GreetingController', function($scope) {
  $scope.greeting = 'Hola!';
});
在这里,将函数作为第二个参数直接传递给控制器,无需任何依赖项


请给我解释一下它的不同影响。

运行AngularJS应用程序时,没有什么真正的不同

但是,当您尝试使用任务运行程序Gulp、Grunt或其他程序编译它时,第二个程序将破坏您的应用程序,因为$scope将被替换

字符串在minif和uglify过程中不会被替换,这就是为什么需要将依赖项作为字符串注入


解释为什么要执行第二个操作。

它们具有相同的功能,但如果要缩小代码,则应使用顶部控制器。AngularJS使用参数名将值注入控制器函数。在JavaScript缩小过程中,这些参数被重命名为较短的字符串。通过告诉使用字符串数组将哪些参数注入函数,AngularJS在重命名参数时仍然可以注入正确的值

如果解释对您有帮助,请将我的答案标记为已接受的答案: