在使用AngulaJS編寫應用時,咱們常常須要作的一件事情就是對模型中的變量進行監視,並對其發生的變化作出相應的迴應。AngularJS爲咱們提供了一個很是方便的$watch方法,它能夠幫助咱們在每一個scope中監視其中的變量。下面是一個很是簡單的例子:
<!DOCTYPE html> <html ng-app> <head> <meta charset="utf-8"> <title>二、angularjs的$watch()方法</title> <script src="../js/angularjs.js"></script> <script src="../js/index7.js"></script> </head> <body> <!-- angularjs的數據綁定,雙向綁定,M,V,c之間的綁定 --> <div ng-controller="firstController"> <input type="text" ng-model="name" value="" /> <p>改變次數:{{count}}---{{name}}</p> </div> </body> </html>
var firstController=function($scope){ $scope.name="張三"; $scope.count=0; $scope.$watch("name",function(newValue,oldValue){ console.log(newValue,oldValue); ++$scope.count; if ($scope.count>10) { $scope.name="輸入發生10次變化"; }; }); }
在AngularJS內部,每當咱們對ng-model綁定的name屬性進行一次修改,AngularJS內部的$digest就會運行一次,並在運行結束以後檢查咱們使用$watch來監視的東西,若是和進行上一次$digest以前相比有了變化,則執行咱們在其中綁定的處理函數。html