$watch
-
3.监听对象
- 1)如果使用$watch监听对象, 要在最后添加一个参数:true,否则监听不到
- 2)默认false, 监听对象地址,如果对象属性值修改, 地址没有修改监听不到
- 3)true 引入监听
-
注意:
- 1.$watch()方法, 有返回值, 是个方法,该方法名和返回值变量名相同
- 2.取消$watch监听, 执行返回值这个方法,如: unWatch()方法
<body ng-app="app" ng-controller="skController">
<button ng-click="click()">点击</button>
{{name}}
<input type="text" ng-model="per.name">
<input type="text" ng-model="per.age">
</body>
<script src="angular.js"></script>
<script>
//1.创建模块
var app = angular.module('app', []);
//2.创建控制器
app.controller('skController', ['$scope',function ($scope) {
$scope.name = '123';
$scope.click = function () {
$scope.name = 'sk666';
//点击取消监听
unWatch();
}
//1.监听name属性改变, 获取新值和旧值
/* $scope.$watch('name', function (newValue, oldValue) {
console.log('newValue= ' + newValue + '--' + 'oldValue= ' + oldValue);
});*/
//2.监听属性值
/*$scope.$watch('per.age', function (newValue, oldValue) {
console.log('newValue= ' + newValue + '--' + 'oldValue= ' + oldValue);
});*/
/**
3.监听对象
1)如果使用$watch监听对象, 要在最后添加一个参数:true,否则监听不到
2)默认false, 监听对象地址,如果对象属性值修改, 地址没有修改监听不到
3)true 引入监听
注意:
1.$watch()方法, 有返回值, 是个方法,该方法名和返回值变量名相同
2.取消$watch监听, 执行返回值这个方法,如: unWatch()方法
*/
var unWatch = $scope.$watch('per', function (newValue, oldValue) {
console.log('newValue= ' + newValue + '--' + 'oldValue= ' + oldValue);
}, true);
}]);
</script>