在AgularJS中每隔15秒自动保存表单字段,而不使用$ watch

时间:2017-11-07 14:07:47

标签: angularjs

我希望每隔15秒保存一次表单字段值,而不使用$ watch,并且一旦将其移动到其他表单,它就应该停止执行。在表单中我会有很多字段,所以我认为$ watch会出现性能问题,而且我也不确定如何为%watch立即调用所有字段。所以我决定使用$ interval,但是一旦我转移到不同的控制器或不同的形式,我想停止执行。如果用户再次返回此表单,则此间隔函数应自动启动。请你建议我处理这个问题的最佳方法。

1 个答案:

答案 0 :(得分:0)

使用$ interval,就像你打算做的那样,但是把它分配给变量

with $ scope.on('$ destroy',function(){});回调你可以在切换到不同的控制器时破坏间隔。

var intervalPromise = $interval(function() { // your code }, 15000);
$scope.$on('$destroy',function(){
    if(intervalPromise)
        $interval.cancel(intervalPromise);   
});