如何通过时间间隔检查局部变量的变化?

时间:2015-07-23 02:27:49

标签: javascript angularjs

每当局部变量的值发生变化时,我想调用一个函数。 我使用while循环尝试了这段代码但是我被锁定在循环中。

var titleChanged = false;

$scope.$watch('title',function(newValue, oldValue) {
    if (newValue !== oldValue) {
        titleChanged = true;
    }
});

while (true) {
    $timeout(checkForChangeAndSave, 3000);
};

function checkForChangeAndSave() {
    if(titleChanged) {
        updateNote();
        titleChanged = false;
    }
}

function updateNote() {
    notesService.update($stateParams.id, {title: $scope.title});
    notesService.getAll();
};

2 个答案:

答案 0 :(得分:1)

我建议您使用角度间隔服务。

使用while实现它的方式将在超时执行期间阻止您的代码。

查看the angular interval documention

答案 1 :(得分:0)

据我所知你想要查看一个局部变量而不是(附加到$ scope)我可能会建议这个手表语法

$scope.$watch(function(){return titleChanged;},function(newVal,oldVal){
  // logic goes here
});