1. Contexte du problème
Une fois qu'AngularJS a défini la minuterie, cliquez à nouveau sur le bouton pour déclencher la minuterie. À ce moment, il apparaîtra : la minuterie précédente n'a pas été activée. arrêté et la minuterie suivante n'a pas été arrêtée. La minuterie est redémarrée, ce qui entraîne l'exécution de plusieurs minuteries en même temps.
2. Code source du problème
<!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. Résultats des questions
4. Code source de la solution
5.
Ce qui précède est le contenu que le minuteur d'AngularJS ne peut pas être arrêté. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !