AngularJS - 使用 requestAnimationFrame 的简单倒计时 (start/stop/restart)

AngularJS - simple Count-Down using requestAnimationFrame (start/stop/restart)

这是小plnkr

我正在尝试打印倒数秒 from 11 to 0then restart 完成后。

问题是它不会在 html 中打印秒数也尝试使用 $apply 但我得到摘要错误。 另外,在重新开始倒计时时我遇到了问题,秒没有正确更新...

我怎样才能更轻松地实现这一目标?

感谢任何帮助,谢谢

问题出在requestAnimationFrame。 Angular 不知道应该绑定新值,而且我认为这里不需要动画帧。尝试用 $timeout 替换动画帧,然后 angular 将知道应该重新绑定数据。 plnkr

给你

(function withAngular(angular) {

'use strict';

angular.module('app', ['ngRoute'])
.controller('Ctrl', function($scope, $window, $timeout) {

  $scope.countSeconds = 11;
  $scope.updateCountdown = function updateCountdown(ms) {

    $timeout(function() {

      if($scope.countSeconds === 0){
      $scope.countSeconds = 11;
      }
     else{$scope.countSeconds--;   }
     $scope.updateCountdown($scope.countSeconds);   
    }, 1000);
  };



  $scope.updateCountdown(0);



});
  }(angular));