【问题标题】:How to get current time from Angular Timer如何从 Angular Timer 获取当前时间
【发布时间】:2014-11-15 20:58:09
【问题描述】:

我正在测试 Angular Timer,发现自己想知道如何在我的控制器中获取当前时间,以便将其用于我可能有的任何目的。

例如,我想在达到特定的分钟数时将计时器的字体颜色设置为红色,但我完全无法做到这一点。

我尝试了以下方法:

$scope.startTimer = function (deadline) {
    $scope.$broadcast('timer-start');
    $scope.timerRunning = true;
    if ($scope.minutes == deadline)
        $scope.turnRed();
};

这是完整的代码:jsFiddle

我还尝试单独更改调用 turnRed() 函数的其他事件中的颜色,但由于某些奇怪的原因它也不起作用。

很抱歉,我无法将角度计时器库添加到小提琴中,因为我对它真的很陌生...如果您也可以在这一点上提供帮助,我会真的很感激!

【问题讨论】:

    标签: javascript angularjs timer angular-timer


    【解决方案1】:

    你可以在这里使用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

    【讨论】:

    • 非常感谢您的回答!这很奇怪,因为 1 小时前我打开了你的小提琴,当我的手机运行良好但我现在在 chrome 上打开它并在我的代码中尝试你的解决方案但它不起作用:S
    • @Kutyel 它会工作计时器脚本是临时在线的,在您的环境中使用它会正常工作。
    • @Kutyel 我已将整个模块粘贴到脚本框架中,现在它可以正常工作了。
    • 我在我的环境中尝试了您的解决方案并且事件触发了,但 h1 永远不会变红:/
    • @Kutyel 如果没有关于您的环境以及您是如何尝试的任何信息,我真的无能为力。您是否尝试过小提琴中给出的完全相同的解决方案?如您所见,小提琴几乎可以满足您的期望。
    猜你喜欢
    • 2018-04-08
    • 2011-04-06
    • 2020-06-02
    • 1970-01-01
    • 2011-02-16
    • 2018-10-18
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    相关资源
    最近更新 更多