接着上一篇的例子,我們來了解一下控制器
AngularJS控制器
AngularJS applications通過控制器進行控制。
ng-controller指令定義了一個application的控制器。
一個控制器就是一個JavaScript對象,它可以通過標準的JavaScript對象構造函數來創建。
<!doctype html>
<html>
<head>
<script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
First Name:
<input type="text" ng-model="firstName">
<br> Last Name:
<input type="text" ng-model="lastName">
<br>
<br> Full Name: {{firstName + " " + lastName}}
</div>
<div>
<p>{{firstName}}</p>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstName = "Danel";
$scope.lastName = "Green";
});
</script>
</body>
</html>
AngularJS application通過ng-app="myApp"來定義。該application的有效作用域處於ng-app所在的<div>中。
ng-controller="myCtrl"屬性即一個AngularJS指令,它定義了一個控制器。
myCtrl函數是一個普通的JavaScript函數。
AngularJS使用$scope對象來調用控制器。
在AngularJS中,$scope是一個application對象(即application變量和函數的所有者)。
控制器包含兩個屬性(或者叫變量):firstName和lastName。它們被附加到$scope對象上。
ng-model指令將input標籤的值綁定到控制器的屬性上(firstName和lastName)。
控制器的方法
上面的例子展示了控制器對象包含兩個屬性:lastName和firstName。
控制器也可以包含方法(將函數賦值給變量):
<!doctype html>
<html ng-app="myApp">
<head>
<script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js"></script>
</head>
<body>
<div ng-controller="personCtrl">
First Name:
<input type="text" ng-model="firstName">
<br> Last Name:
<input type="text" ng-model="lastName">
<br>
<br> Full Name: {{fullName()}}
</div>
<script>
var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {
$scope.firstName = "Danel";
$scope.lastName = "Green";
$scope.fullName = function() {
return $scope.firstName + " " + $scope.lastName;
}
});
</script>
</body>
</html>
在大型應用中,常常會將控制器代碼寫在外部文件中。將<script>標籤中的代碼拷貝到personController.js外部文件中即可