为什么将$ scope放在控制器上的dependencies数组中?

时间:2014-06-02 17:40:29

标签: angularjs

我见过很多人,包括Angular文档,声明控制器是这样的:

app.controller('ExampleController', [$scope, $http, function($scope, $http) {
    $scope.name = "Bob";
}]);

为什么我们需要将$ scope放在依赖数组中?这是Angular旧版本的语法吗?我们可以改为像:

app.controller('ExampleController', [$http, function($scope, $http) {
    $scope.name = "Bob";
}]);

这两者有区别吗?谢谢。

1 个答案:

答案 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