gpt4 book ai didi

javascript - 如何仅在离开 AngularJS 状态时取消 $interval?

转载 作者:行者123 更新时间:2023-12-03 06:46:14 28 4
gpt4 key购买 nike

这个想法是在用户进入特定页面 10 秒后在特定页面上打开模态框,并在用户离开该页面时取消模态框。当我刷新页面时它可以工作,但是当我导航到该页面时,我的代码在加载时会取消 $interval。

在我的 Controller 中:

$rootScope.$on("$locationChangeStart", function(event, next, current) { 
$interval.cancel(interval);
});

$scope.openmodal = function () {
interval = $interval(function () {
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'modal.html',
controller: 'ModalInstanceCtrl',
size: 'lg',
});
}, 10000, [1]);
}

$scope.openmodal();

问题是当从不同的状态加载状态时, $locationChangeStart 被执行。当我刷新浏览器时,$locationChangeStart 不会运行,模式将在 10 秒后打开。从不同状态加载时,如何阻止 Controller 调用 $interval.cancel() 方法?

最佳答案

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

请阅读 ui-router 的文档,特别是 events部分。

关于javascript - 如何仅在离开 AngularJS 状态时取消 $interval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37723252/

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