Javascript 角度控制器:对'$范围';参数 {{carname}} var-app=angular.module('myApp',[]); 应用程序控制器('myCtrl',函数($scope){ $scope.carname=“沃尔沃”; });

Javascript 角度控制器:对'$范围';参数 {{carname}} var-app=angular.module('myApp',[]); 应用程序控制器('myCtrl',函数($scope){ $scope.carname=“沃尔沃”; });,javascript,angularjs,Javascript,Angularjs,我认为$scope仅仅是匿名函数的参数名,如果不将对象作为参数传递给它,就不能只为它分配属性(carname) app.controller('myCtrl', [ "$scope", function($scope) { $scope.carname = "Volvo"; }]); 那么Angular是否会自动创建一个名为myCtrlScope的参数来传递给$scope参数?否则,我看不到实际对象被传递到$scope,这只是一个参数。编写控制器的方式也可以这样编写: <div n

我认为
$scope
仅仅是匿名函数的参数名,如果不将对象作为参数传递给它,就不能只为它分配属性(
carname

app.controller('myCtrl', [ "$scope", function($scope) {
   $scope.carname = "Volvo";
}]);

那么Angular是否会自动创建一个名为
myCtrlScope
的参数来传递给
$scope
参数?否则,我看不到实际对象被传递到
$scope
,这只是一个参数。

编写控制器的方式也可以这样编写:

<div ng-app="myApp" ng-controller="myCtrl">

 <h1>{{carname}}</h1>

</div>

<script>
 var app = angular.module('myApp', []);

 app.controller('myCtrl', function($scope) {
     $scope.carname = "Volvo";
 });
</script>
app.controller('myCtrl', [ "$scope", function($scope) {
   $scope.carname = "Volvo";
}]);

您声明的方式是速记方法。您提到的方法没有错,但是更好的声明方法是上面的方法,我们在其中指定每个依赖项。您可以查看文档以获得更好的说明。

像这样使用此内联数组注释

app.controller('myCtrl', [ "$scope", function($scope) {
   $scope.carname = "Volvo";
}]);

app.controller('myCtrl', [ "$scope", function($scope) {
   $scope.carname = "Volvo";
}]);

{{carname}}
var-app=angular.module('myApp',[]);
app.controller('myCtrl',['$scope',函数($scope){
$scope.carname=“沃尔沃”;
}]);

$AngualrJS开发人员已经定义了scope,每当我们在代码中使用它时,angular就会自动知道并注入它的依赖关系。为了更好地理解,您可以进一步阅读这个称为依赖项注入的概念。文档中对此进行了非常清楚的解释: