我在Angular寫了一個簡單的控制器,但有些東西我找不出來。
當寫回調函數,即在module.controller('myController', function($scope){
我指定一個參數的第二個參數,這裏叫做$scope
。我從Angular文檔中獲得了這些代碼。
但是,奇怪的是,如果我將$scope
更改爲abc
之類的其他值,則控制器不再有效。
但它應該,不應該嗎? $scope
只是參數的名稱嗎?例如,對於像
var func = function(abc){
alert(abc);
}
功能應該工作,即使我改變參數xyz
,像
var func = function(xyz){
alert(xyz);
}
別的東西會在這裏?參數$scope
是否真的指向全局Angular對象?
這裏是我的代碼整體
<html ng-app="MyFirstApp">
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<title>My Page</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
<script>
var module = angular.module("MyFirstApp", []);
module.controller('myController', function($scope){
$scope.airports = {
"PDX": {
"code": "PDX",
"name": "Portland International Airport",
"city": "Portland",
"destinations": [
"LAX",
"SFO"
]
},
"STL": {
"code": "STL",
"name": "Lambert-St. Louis International Airport",
"city": "St. Louis",
"destinations": [
"LAX",
"MKE"
]
},
"MCI": {
"code": "MCI",
"name": "Kansas City International Airport",
"city": "Kansas City",
"destinations": [
"LAX",
"DFW"
]
}
};
var p = "pee";
$scope.airportsArray = function arr(){
var array = [];
for (i in $scope.airports){
array.push(i);
}
return array;
}
});
</script>
</head>
<body ng-controller="myController">
<div>
{{ airportsArray() }}
</div>
</body>
</html>
感謝您的提示,但它是如何回答這個問題的?你的意思是說我們需要使用'$ scope',因爲它是Angular唯一可以識別的參數名稱? – CodyBugstein 2014-10-28 10:05:39
@Imray:我認爲這個問題是「在Angular控制器的回調中,爲什麼參數必須命名爲」$ scope「?」>這就是爲什麼,因爲它得到函數的*字符串*並查找該名稱。如果你願意,你可以將它改成別的東西(通過向你的控制器添加一個選項),但是如果你堅持'$ scope',任何對代碼進行維護的人都會知道它是什麼。 – 2014-10-28 13:46:28
Crowder現在明白了。謝謝 – CodyBugstein 2014-10-28 14:02:06