角度计时器自定义倒计时变量

时间:2015-01-14 19:22:42

标签: javascript angularjs

我正在使用角度计时器:http://siddii.github.io/angular-timer/

我的目标是为应用程序创建一个计时器,以便在其他位置引用变量。这样,无论用户在页面加载时重新启动计时器,我都会有一个计时器,无论用户做什么,都会一直倒计时。大多数使用角度计时器的例子都会输入倒计时数字。有没有办法传递像这样的变量:

var timeRemaining = 1000;

<h1 class="timer"><timer countdown=timeRemaining max-time-unit="'minute'" interval="1000">{{mminutes}} minute{{minutesS}}, {{sseconds}} second{{secondsS}}</timer></h1>

而不是像这样被迫写倒计时:

countdown="1000"

我已经尝试过通过toString()方法传递变量了。感谢。

2 个答案:

答案 0 :(得分:0)

如果不编辑指令本身,你似乎无法做你想做的事。

或者,您可以在示波器上使用此问题的计时器,只需将其修改为倒计时:https://stackoverflow.com/a/12050481/4322479

从问题的评论中倒数:http://jsfiddle.net/dpeaep/LQGE2/1/

function AlbumCtrl($scope,$timeout) {
  $scope.counter = 5;
  $scope.onTimeout = function(){
      $scope.counter--;
      if ($scope.counter > 0) {
          mytimeout = $timeout($scope.onTimeout,1000);
      }
      else {
          alert("Time is up!");
      }
  }
  var mytimeout = $timeout($scope.onTimeout,1000);

  $scope.reset= function(){
      $scope.counter = 5;
      mytimeout = $timeout($scope.onTimeout,1000);
  }

}

答案 1 :(得分:0)

无需编辑指令,您还可以在timer元素上使用ng-if来检查startTime变量。

<timer ng-if="yourCountdownVaariable>0" countdown="yourCountdownVaariable" 
    max-time-unit="'hour'" interval="60000">
        {{hhours}} hour{{hoursS}}, {{mminutes}} minute{{minutesS}}
</timer>

这样,指令只会在你有你的日期时初始化,并且它会起作用。原始问题如下:

https://github.com/siddii/angular-timer/issues/36