$watch
方法接受一个函数作为第一个参数(在字符串旁边)。
$watch
将“观察”函数的返回值,并在返回值发生更改时调用 $watch 侦听器。
$scope.$watch(
function(scope){
return {image: scope.image, titleImage: scope.titleImage};
},
function(images, oldImages) {
if(oldImages.image !== images.image){
console.log('Image changed');
}
if(oldImages.titleImage !== images.titleImage){
console.log('titleImage changed');
}
},
true
);
此外,您可能会观察到一个连接值,但这不会让您知道哪个观察到的值实际发生了变化:
$scope.$watch('image + titleImage',
function(newVal, oldVal) {
console.log('One of the images have changed');
}
);
您还可以查看一系列范围变量:
$scope.$watch('[image, titleImage]',
function(images, oldImages) {
if(oldImages[0] !== images[0]){
console.log('Image changed');
}
if(oldImages[1] !== oldImages[1]){
console.log('titleImage changed');
}
},
true
);