AngularJS-状态更改时停止自动刷新页面
AngularJS - stop auto-refreshing page when state is changed
一旦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);
但没有奏效。
我试图实现的是在一定时间间隔后自动刷新页面,但仅当用户处于与该页面相关联的状态时。
谢谢。
您可以绑定到destroy方法的作用域,并在那里取消间隔。
var stop = $interval(function() {
console.log("Refreshed!");
findData();
}, 5000);
scope.$on('$destroy', function() {
$interval.cancel(stop);
});
如果我正确理解您的理解,最好使用状态更改的事件侦听器来处理:
$scope.on('$stateChangeSuccess', function(e, toState) {
if(toState.name === 'stateWithRefresh') {
findData();
}
});
相关文章:
- AngularJS-状态更改时停止自动刷新页面
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- Selectbox选项在页面刷新jsp后保持选中状态
- 在浏览器刷新时保存XHR渲染状态
- 导航到子状态也会刷新其父状态
- 页面刷新后,所选选项卡处于非活动状态
- 维护手动页面刷新时通过AJAX加载的状态/内容
- Angular 1:最后一个复选框没有'刷新页面后不要保持选中状态
- Angular UI路由器无法识别页面刷新时的状态
- AngularJs:UI路由器浏览器刷新,移动到第一个子状态
- 如何在React.js中维护页面刷新后的状态
- 如何在使用 Firebase 登录或注销时更改状态而不刷新
- 刷新子组件更改时的应用状态
- 显示 ui 路由器模式而不刷新父状态
- 刷新窗口后,下拉列表未保持选中状态
- 如何在页面刷新之前保持悬停状态为非悬停状态
- HTML5历史API弹出状态重新加载野生动物园刷新页面无休止
- 保持表单数据处于页面刷新状态
- jQuery垂直选项卡保持在刷新状态
- 在React/Flux中保持刷新状态的最佳实践是什么?