分类: Javascript

AngularJS – $watch and unbinding $watch






$watch helps to listen for $scope changes

watch 简单的说,比较像event trigger,用$watch 你可以attched 一个function call在一个$scope的数值上,当这个数值改变的时候,function 就会被active. 例如:

function MyController($scope) {
   $scope.myVar = 1;
   $scope.$watch('myVar', function() {
       alert('hey, myVar has changed!');
   });
   $scope.buttonClicked = function() {
      $scope.myVar = 2; // 这里 $watch 下的function alert就会被启动。
   };
}

另外在在生成$watch() method的时候, angularJS会回复一个”deregistration” function,用于所谓的”un-watch”,例如:

function MyController($scope) {
   $scope.myVar = 1;
   var unbindWatcher = $scope.$watch('myVar', function() {
       alert('hey, myVar has changed!');
   });
   $scope.buttonClicked = function() {
      $scope.myVar = 2; // 这里 $watch 下的function alert就会被启动。
      unbindWatcher(); //下一次,再运行buttonClicked的时候,altert将不会在运行。
   };
}




发表评论