javascript - 如何观看对象

时间:2016-04-03 13:50:49

标签: javascript angularjs watch

我有一个对象,想要在该对象发生变化时运行一个函数。我尝试使用角度$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;
            }
        },

1 个答案:

答案 0 :(得分:0)

我不确定你的意思是什么,因为“没有经常工作”。

scope.$watch('name', function(newValue, oldValue) {
  console.log('name has been changed: ' + $scope.name);
  scope.counter = scope.counter + 1;
});

开始简单,将上面的代码放入控制器并有一个简单的字段修改$ scope.name变量。您将在控制台中看到手表被触发。