角度控制器:对'$ scope'参数感到困惑

时间:2017-04-01 04:40:20

标签: javascript angularjs

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

我认为$scope仅仅是匿名函数的参数名称,你不能只是在没有传递对象作为参数的情况下为它分配属性(carname)。

Angular会自动创建一个名为myCtrlScope的参数来传递给$scope参数吗?否则,我没有看到任何方式将实际对象传递给$scope,这只是一个参数。

2 个答案:

答案 0 :(得分:0)

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

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

你声明的方式是简单方法。你提到的方式并没有错,但更好的声明方法是上面的方法,我们指定每个依赖项。您可以查看dependency injection的文档以获得更好的说明。

答案 1 :(得分:0)

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

              

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

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

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl',['$scope', function($scope){
    $scope.carname = "volvo";   
}]);
</script>

</body>
</html>