我有一个angular的路由,每隔x秒调用一次函数来轮询数据(使用setInterval)。我的问题是,当用户导航到另一条路线时,轮询仍在继续。如何使用ui-router切换到任何其他路由时停止轮询(clearInterval)?
答案 0 :(得分:1)
在ui-router
路线类似于州,ui-router
为您提供state lifecycle events。
如果您尝试更改路线/状态并成功,可以使用其中一个事件$stateChangeSuccess
取消$interval
。
$scope.$on('$stateChangeSuccess', function(event){
// cancel your $interval here
})
答案 1 :(得分:0)
你应该在$ scope destroy方法上取消$ interval。更多文档:https://docs.angularjs.org/api/ng/service/ $ interval