我正在使用角度计时器: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()方法传递变量了。感谢。
答案 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>
这样,指令只会在你有你的日期时初始化,并且它会起作用。原始问题如下: