我有一个对象,想要在该对象发生变化时运行一个函数。我尝试使用角度$watch
,但这只能在没有setters
的情况下使用。
正在搜索我发现obj.observe
的另一个解决方案,但mdn
表示它已经过时且未得到广泛支持。如果我的对象发生变化,还有其他方法来运行函数吗?
修改
// watch using this doen't work, when update through ng-model
Object.defineProperties(self, {
'myprop': {
get: function () {return _myprop; },
set: function (value) {
_myprop = value;
}
},
答案 0 :(得分:0)
我不确定你的意思是什么,因为“没有经常工作”。
scope.$watch('name', function(newValue, oldValue) {
console.log('name has been changed: ' + $scope.name);
scope.counter = scope.counter + 1;
});
开始简单,将上面的代码放入控制器并有一个简单的字段修改$ scope.name变量。您将在控制台中看到手表被触发。