標籤:
AngularJS中的控制器是一個函數,用來向視圖的範圍添加額外的功能。我們用它來給範圍對象設定初始狀態,並添加自訂行為。AngularJS同其他JavaScript架構最主要的一個區別就是,控制器並不適合用來執行DOM操作,格式化或資料操作,以及除儲存資料模型之外的狀態維護操作。它只是視圖和$scope之間的橋樑。 AngularJS應用的任何的一個部分,無論它渲染在哪個上下文,都有父級範圍存在。對ng-app所處的層級來講,它的父級範圍就是$rootScope。有一個例外,在指令內部建立的範圍被稱為孤立範圍。 關於尋找屬性:預設情況下,AngularJS在當前的範圍中無法找到屬性的時候,便會在父級範圍中進行尋找。如果AngularJS找不到對應的屬性,會順著父級範圍一直向上尋找。知道抵達$rootScope為止。如果$rootScope中也找不到,程式會繼續運行,但試圖無法更新。 <div ng-controller="ParentController"> <div ng-controller="ChildController"> <button ng-click="sayHello()">sayHello</button> </div> {{ person }}</div><script type="text/javascript"> var app = angular.module("myApp", []); app.controller("ParentController", function($scope) { $scope.person = { name: "lin" }; }); app.controller("ChildController", function($scope) { $scope.sayHello = function() { $scope.person.age = 16; }; });</script>
*良好的應用會將複雜的邏輯放到指令和服務中。通過使用指令和服務,我們可以將控制器重構成一個輕量且容易維護的形式。
AngularJS入門基礎——控制器