在 AngularJS 的 Controller 中,可以利用 $scope 的 $watch 來即時監控資料的正確性
<script> function AlbumCtrl($scope) { $scope.age = 13; $scope.$watch('age', function(){ if ($scope.age > 20) { alert('Too old'); } }); } </script> <div ng-controller="AlbumCtrl"> <input ng-model="age"> <span ng-bind="age"></span> </div>
監聽 object
$scope.info= { name: 'Johnson' }; $scope.$watch('info', function() { console.log('modify'); }, true);
另外也可以透過 $watchCollection 或 $watchGroup(1.3後才有) 兩個函式可以使用
$watchCollection 用來監測 collection
$scope.names = ['Johnson', 'Tom']; $scope.$watchCollection('names', function() { console.log($scope.names); });
$watchGroup 用來監測多個變數
$scope.names = 'Johnson'; $scope.age = 25; $scope.$watchGroup(['names', 'age'], function() { console.log($scope.names); console.log($scope.age); });