2017-04-01 67 views
-1
<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,这仅仅是一个参数。

+0

$范围由AngualrJS开发商定义的,每当我们使用它的代码进行内联阵注释,角度自动才知道,并注入依赖IT 。这个概念被称为依赖注入进一步您可以阅读[这](https://www.google.com.pk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjH5srUuYLTAhWEaxQKHZ11CBgQFggXMAA&url=https %3A%2F%2Fdocs.angularjs.org%2Fguide%2Fdi&USG = AFQjCNFnywa5rLhpd14MLfHHNAmkQbjs5w&SIG2 = bdJ5Y9iVZ - H78R0xrgudQ&BVM = bv.151325232,d.bGs)为了更好地理解。 – MUT

+0

这在文档中有非常清楚的解释:https://docs.angularjs.org/guide/scope – Claies

回答

0

你写的控制器可以写成这样也顺便:

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

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

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>