如何使用时间间隔检查局部变量的更改
How to check for changes in local variable with a time lapse?
我想在局部变量的值发生变化时调用一个函数。我尝试了使用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();
};
我建议你使用angular的interval服务。
使用while实现的方式会在超时执行期间阻塞代码。
看一下angular interval文档
正如我所理解的那样,你想要监视一个局部变量,而不是(附加到$scope),我可能会建议使用这个监视语法
$scope.$watch(function(){return titleChanged;},function(newVal,oldVal){
// logic goes here
});
相关文章:
- Javascript用函数return替换局部变量
- 每次调用函数时,都要修改Javascript中的局部变量
- 局部变量在闭包中丢失
- 试图将一个局部变量传递给我的ngAside控制器
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 如何使用局部变量创建全局变量
- 如何在单击链接后将局部变量发送到部分呈现
- 定义 JavaScript 类的局部变量
- 创建所有原型函数均可访问的局部变量
- 局部变量的声明
- JavaScript:在调用之前将函数重新分配给局部变量,而不是直接调用并对'这'
- 为什么 Javascript 中的类变量在尝试多次调用它们或将它们分配给局部变量时会消失
- 函数中的局部变量
- 局部变量仍可通过函数访问
- JavaScript和局部变量是不好的做法
- 局部变量在应用 function.call() 后变为全局变量
- 如何创建一个只应用了一些过滤器的局部变量
- 如何在 JavaScript 中检查变量是局部变量还是全局变量
- 是否有一种方法来检查Javascript中的闭包(或局部变量)
- 如何使用时间间隔检查局部变量的更改