我正在测试 Angular Timer 并且发现自己想知道如何在我的 Controller 中获取当前时间以便将它用于我可能有的任何目的。
例如,我想在达到特定分钟数时将计时器的字体颜色设置为红色,但我完全无法做到这一点。
我尝试了以下方法:
$scope.startTimer = function (deadline) {
$scope.$broadcast('timer-start');
$scope.timerRunning = true;
if ($scope.minutes == deadline)
$scope.turnRed();
};
这是完整的代码:jsFiddle .
我还单独尝试在调用 turnRed()
函数的其他一些事件中单独更改颜色,但由于某些奇怪的原因,它也不起作用。
很抱歉,我无法将 Angular 计时器库添加到 fiddle ,因为我真的很陌生......如果你也能在这一点上提供帮助,我会的非常感谢!
最佳答案
您可以使用 timer-tick事件在这里
$scope.$on('timer-tick', function (event, data) {
if ($scope.timerRunning === true && data.millis >= $scope.deadlineInMilli) {
$scope.$apply($scope.turnRed);
}
});
并且需要将分钟换算成毫秒进行比较
$scope.startTimer = function (deadline) {
....
$scope.deadlineInMilli = +deadline * 1000 * 60; // converting to milliseconds
};
参见 DEMO
关于javascript - 如何从 Angular Timer 获取当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26950645/