1. 문제 배경
AngularJS가 타이머를 설정한 후 버튼을 다시 클릭하면 타이머가 작동됩니다. 이전 타이머가 작동하지 않습니다. 중지되었지만 다음 타이머가 중지되지 않았습니다. 타이머가 다시 시작되어 동시에 여러 타이머가 실행됩니다.
2. 문제 소스코드
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>AngularJS之定时器无法停止</title> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> <script> var app = angular.module("btnApp",[]); app.controller("btnCon",function($scope,$interval){ $scope.count = 0; $scope.getDayTime = function(){ var date = new Date(); var year = date.getFullYear(); var month = date.getMonth()+1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); var thisTime = year+"-"+(month<10?"0"+month:month)+"-"+(day<10?"0"+day:day)+" "+(hour<10?"0"+hour:hour)+":"+(minute<10?"0"+minute:minute)+":"+(second<10?"0"+second:second); return thisTime; }; $scope.dayTime = $scope.getDayTime(); $scope.queryData = function(){ var timer = $interval(function(){ $scope.count++; console.log($scope.count); },4000); $scope.$on("destroy",function(){ $interval.cancel($scope.timer); }); }; }); </script> </head> <body ng-app="btnApp"> <p ng-controller="btnCon"> <button ng-click="queryData();">查询</button> <p> <label>{{count}}</label> </p> </p> </body> </html>
3. 질문 결과
4. 솔루션 소스코드
5. 솔루션 결과
위 내용은 AngularJS의 타이머를 멈출 수 없다는 내용입니다. 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!