在Angular JS中更改状态后,有没有办法停止自动刷新页面?
我有以下代码:
AngularJS控制器
$scope.data= [];
var findData= function() {
service.findData().then(function (data) {
$scope.data= data;
});
};
findData();
$interval(function() {
console.log("Refreshed!");
findData();
}, 5000);
我尝试在$ interval函数中添加一个额外的条件:
$interval(function() {
console.log("Refreshed!");
if($state.$current.path.name == "stateWithRefresh") {
findData();
}
}, 5000);
但它没有用。
我想要实现的是在一定时间间隔后自动刷新页面,但仅当用户处于与该页面关联的状态时。
感谢。
答案 0 :(得分:1)
你可以绑定范围的destroy方法,并在那里取消间隔。
var stop = $interval(function() {
console.log("Refreshed!");
findData();
}, 5000);
scope.$on('$destroy', function() {
$interval.cancel(stop);
});
答案 1 :(得分:0)
如果我理解你正确得到的东西,最好通过状态变化的事件监听器来处理它:
$scope.on('$stateChangeSuccess', function(e, toState) {
if(toState.name === 'stateWithRefresh') {
findData();
}
});