我想在局部变量的值更改时调用一个函数。
我使用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();
};

最佳答案

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

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

看看the angular interval documention

09-25 22:10