我见过很多人,包括Angular文档,声明控制器是这样的:
app.controller('ExampleController', [$scope, $http, function($scope, $http) {
$scope.name = "Bob";
}]);
为什么我们需要将$ scope放在依赖数组中?这是Angular旧版本的语法吗?我们可以改为像:
app.controller('ExampleController', [$http, function($scope, $http) {
$scope.name = "Bob";
}]);
这两者有区别吗?谢谢。
答案 0 :(得分:2)
你一直在看的是这样的事情:
app.controller('ExampleController', ["$scope", "$http", function($scope, $http) {
$scope.name = "Bob";
}]);
这样做的原因是为了解决缩小问题。当缩小$ scope时,$ http会被压缩成a和b之类的变量,因为依赖注入不会缩小。 Angulars的解决方案是使控制器成为可以传入字符串的数组。
请参阅:https://docs.angularjs.org/tutorial/step_05#-prefix-naming-convention