AngularJS(02)---控制器
阿新 • • 發佈:2019-01-08
接著上一篇的例子,我們來了解一下控制器
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外部檔案中即可