【发布时间】:2015-05-28 15:35:38
【问题描述】:
我是 Angular 的初学者。我在看 w3schools 教程:
http://www.w3schools.com/angular/angular_controllers.asp
我试图改变
app.controller('myCtrl', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
到
app.controller('myCtrl', function(a) {
a.firstName = "John";
a.lastName = "Doe";
});
示例停止工作。看起来 $scope 不仅仅是一个常规的函数参数,但它是什么?
【问题讨论】:
-
是的,
$scope是一个特殊参数,至少在刚开始时,它是 Angular 的主要构建块之一。我还建议不要向 w3schools 学习。一个好的起点是egghead.io -
我了解作用域的目的是什么,但我不明白 Javascript 如何允许函数参数出现这种奇怪的行为?
-
Angular 检查参数名称以确定为每个参数注入的内容。所以改变它的名字意味着 Angular 不再知道要注入什么。查看@tommy 的答案,了解如何手动注入依赖项的示例。
标签: angularjs