gpt4 book ai didi

javascript - Angularjs $interval cancel 不起作用,并且 destroy 和 stateChangeSuccess 不起作用

转载 作者:行者123 更新时间:2023-11-28 04:40:47 25 4
gpt4 key购买 nike

在下面,您将看到我的部分代码用于创建间隔,并且应该在离开状态后取消间隔......但事实并非如此。

var init = function () {
$translatePartialLoader.addPart("app/bottling/palletTnT/palletTnT.grid");
$translate.refresh();

//$scope.disablePaging = false;
setColumnDefs();
updateDataGrid();
getRefreshTimer().then(function () {
if ($scope.RefreshTime != 0 && !intervalPromise) {
intervalPromise = $interval(function () {
getLaneBufferData(palletTnTService.wrapperFilter);
}, $scope.RefreshTime * 1000);
}
});


}


var intervalPromise = null;

$scope.$on('$stateChangeSuccess', function () {
$interval.cancel(intervalPromise);

});

init是我打开页面时的初始函数,所以问题是;

我们打开这个页面,它正在很好地创建间隔并正确处理。但是当我进入另一个页面并改变状态时,它仍然在后台工作......这太奇怪了。但是如果我手动重新加载,我的意思是F5,间隔正在运行并且不起作用...所以我对此没有任何想法,我尝试了很多方法但没有帮助。

提前致谢...

顺便说一句,与“$destroy”方法的结果相同。

最佳答案

从代码的读取方式来看,您似乎在与间隔相同的页面上有 $stateChangeSuccess 部分。当您的状态更改成功时,您的 $scope 已经被销毁,并且不会触发此事件。如果将其更改为 $stateChangeStart,您应该会看到您想要的结果。

关于javascript - Angularjs $interval cancel 不起作用,并且 destroy 和 stateChangeSuccess 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43801450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com