这两个 angularjs 控制器定义有什么区别
What is the difference between these two angularjs controller definition
我不明白这两种 angularjs 控制器定义的区别,
我尝试了以下代码,发现两者都有效
myApp.controller('GreetingController', ['$scope', function($scope) {
$scope.greeting = 'Hola!';
}]);
myApp.controller('GreetingController', function($scope) {
$scope.greeting = 'Hola!';
});
第一个关心缩小。
在此控制器中:
myApp.controller('GreetingController', function($scope) {
$scope.greeting = 'Hola!';
});
参数将被最小化为一些短值,依赖注入将不起作用。
请看:
- https://docs.angularjs.org/guide/di#dependency-annotation
- https://docs.angularjs.org/tutorial/step_05
- What are the differences in angular controller notation?
第二个一旦缩小就不再工作了,因为缩小器会重命名参数以尽可能多地节省带宽:
myApp.controller('GreetingController', function(a) {
a.greeting = 'Hola!';
});
由于 angular 使用参数的 names 来知道向控制器注入什么,这将失败。
第一种语法是规避这个问题的方法。
我使用 ngAnnotate 来自动将第二种语法转换为第一种语法,作为构建过程的一部分,在缩小之前
我不明白这两种 angularjs 控制器定义的区别, 我尝试了以下代码,发现两者都有效
myApp.controller('GreetingController', ['$scope', function($scope) {
$scope.greeting = 'Hola!';
}]);
myApp.controller('GreetingController', function($scope) {
$scope.greeting = 'Hola!';
});
第一个关心缩小。
在此控制器中:
myApp.controller('GreetingController', function($scope) {
$scope.greeting = 'Hola!';
});
参数将被最小化为一些短值,依赖注入将不起作用。
请看:
- https://docs.angularjs.org/guide/di#dependency-annotation
- https://docs.angularjs.org/tutorial/step_05
- What are the differences in angular controller notation?
第二个一旦缩小就不再工作了,因为缩小器会重命名参数以尽可能多地节省带宽:
myApp.controller('GreetingController', function(a) {
a.greeting = 'Hola!';
});
由于 angular 使用参数的 names 来知道向控制器注入什么,这将失败。
第一种语法是规避这个问题的方法。
我使用 ngAnnotate 来自动将第二种语法转换为第一种语法,作为构建过程的一部分,在缩小之前