我使用angular $ time out从api重新加载数据并在dom中显示实时统计信息。重新加载效果很好,5秒后重新加载。但问题是,在我点击另一个标签后,我不需要$ timeout和重新加载数据,仍然会像之前一样重新加载数据。该数据不在DOM中,但在网络控制台中仍然从下面的代码重新加载数据,并使用该数据调用http get url。
$scope.reload = function () {
$http.get(serviceBase + 'live-stats').
success(function (res) {
$scope.proizvedeno = res;
console.log(res);
});
$timeout(function(){
$scope.reload();
}, 5000);
};
$scope.reload();
P.S。我使用angular-load-bar,当重新加载页面的某个部分时,有没有办法让这个栏不旋转,在这种情况下从" timeout"显示统计信息
编辑: 我将此添加到此ctrl
$scope.reload = function () {
$http.get(serviceBase + 'live-stats').
success(function (res) {
$scope.proizvedeno = res;
console.log(res);
});
$timeout(function(){
$scope.reload();
}, 5000);
$scope.$on('$destroy', function(){ //this is what i add
$timeout.cancel(reload); //this is what i add
};
$scope.reload();
但仍然超时未取消
答案 0 :(得分:1)
我只需要声明“var reload”
var reload = $timeout(function(){
$scope.reload();
}, 5000);
$scope.$on('$destroy', function(){
$timeout.cancel(reload);
});