假设您在全局范围内有一个对象(我知道它很糟糕。它仅用于演示目的),并且您希望在Angular JS中查看该对象的属性。
var human = {
name: 'Somebody'
};
var app = angular.module('app', []);
app.controller('watchController', function ($scope) {
$scope.$watch('human.name', function () {
alert('foo is changed');
});
$scope.doWatch = function () {
human.name = new Date().toString();
};
});
和这个HTML:
<div ng-app='app'>
<div ng-controller='watchController'>
<input type='button' value='Invoke' ng-click='doWatch()' />
</div>
</div>
你是怎么做到的?此代码不起作用。请参阅此fiddle。
答案 0 :(得分:4)
$watch
接受一个函数作为第一个参数。返回值的更改会触发对侦听器的调用。:
$scope.$watch(function(){
return human.name;
}, function () {
console.log('foo is changed');
});
的 Fiddle 强>