首先:我是 angularjs 或 js 的新手。所以也許我的代碼中有一個(gè)愚蠢的錯(cuò)誤。所以這是關(guān)于:我試圖構(gòu)建一個(gè)簡(jiǎn)單的注銷模板,它將在 10 秒后注銷您。還有兩個(gè)按鈕,一個(gè)用于直接注銷,一個(gè)用于取消注銷。我的問題:如果你只是讓時(shí)間過去,倒計(jì)時(shí)不會(huì)在 10 秒后停止。因此,出于某種原因,“clearInterval”方法不起作用。如果您使用其中一個(gè)按鈕取消間隔,它會(huì)起作用。因此,該方法似乎在取消和 clearInterval 之后仍然計(jì)數(shù)。<div class='container' ng-app="myAssesmentApp" ng-controller="logoutController" > <h1>Logout</h1> <br> <form> <div class='form-group'> <p> Ur gonna loged out in <span id="countdowntimer">10 </span> seconds</p> </div> <button type='submit' class='btn btn-primary' ng-click ="logout()" id="close">Okay log me out</button> <button type='submit' class='btn btn-primary' ng-click ="cancelLogout()" id="dont">i dont wanna get loged out</button> </form> </div>JS: myAssesmentApp.controller('logoutController', ['$scope', 'userService', '$state', function ($scope, userService, $state) { $scope.timeleft = 10; var downloadTimer = setInterval($scope.timer, 1000); $scope.timer = function () { $scope.timeleft--; document.getElementById("countdowntimer").textContent = $scope.timeleft; if ($scope.timeleft <= 0) { $scope.stop(); } }; $scope.stop = function() { clearInterval(downloadTimer); $scope.logout(); } $scope.cancelLogout = function () { clearInterval(downloadTimer); $state.go('main.projectstate'); $scope.dynamicView = false; }; $scope.logout = function () { clearInterval(downloadTimer); userService.benutzer = ''; userService.password = ''; $scope.logedIn = false; }; }]);所以它應(yīng)該做的是在 10 秒后重置并取消整個(gè)方法。我知道我不是最好的英語演講者,但我希望你理解我的問題 :) 在此先感謝!
如何取消 setInterval 函數(shù)?
天涯盡頭無女友
2021-10-14 14:25:35