【AngularJS】离开本页面定时器未销毁

问题:

页面A,js循环打印1,跳转到页面B后,还是在继续打印1。原js定时器仍在执行未被销毁。

解析:

路由跳转只会销毁上一个$scope上的属性值,像setTImeout或者异步都还是在js的执行线程中。

$templateCache.removeAll();这个不能清理异步。需要自己手动清理,在destroy时。

解决:

destroy只能写在循环的那个js里,清除那个页面里面的异步,方便维护。

var timer = $interval(function() { 
    console.log(1);
},1000); 

$scope.$on("$destroy", function() {
    $interval.cancel( timer );
});

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值