首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular Timer指令不工作

Angular Timer指令不工作
EN

Stack Overflow用户
提问于 2015-12-13 01:00:22
回答 5查看 1.9K关注 0票数 1

我想要一个1分钟的计时器,它应该在达到1分钟时立即停止,然后调用一个函数。为此,我使用了angular-timer指令。

我在html中使用的代码是

代码语言:javascript
运行
复制
<timer end-time="60000">
    {{days}} days, {{hours}} hours, {{minutes}} minutes, {{seconds}} seconds.
</timer>

我在属性' end - time‘中提供了60000毫秒(1分钟)的结束时间。但它不起作用。当结束时间值为'1451628000000‘时,它可以工作。我哪里错了?还可以帮助我在计时器结束时如何调用函数。

提前谢谢。

EN

回答 5

Stack Overflow用户

发布于 2015-12-13 01:08:25

end-time参数以毫秒为单位获取时间戳。您的60000将作为时间戳。所以它已经停止了。

你能做的就是计算现在的时间戳,然后再加上60000进行调整。

在您的控制器中:

$scope.endTime = (new Date()).getTime()+60*1000;

在视图中:

<timer end-time="{{endTime}}">{{days}} days, {{hours}} hours, {{minutes}} minutes, {{seconds}} seconds.</timer>

我不确定您需要以哪种格式显示该计时器,但对于您所要求的,这将是可行的。

要在特定时间段后运行函数,只需在控制器中使用$timeout服务。注入$timeout并像JS中的setTimeout函数一样使用它。

代码语言:javascript
运行
复制
$timeout(function () {
    console.log('this will run after 1 minutes');
}, 60*1000);

有关更多信息,请查看$timeouts documentation

票数 1
EN

Stack Overflow用户

发布于 2015-12-13 01:19:08

您还可以使用倒计时,如下所示。

倒计时计时器

代码语言:javascript
运行
复制
<timer interval="1000" countdown="100">{{countdown}}</timer>

将从100开始倒计时,直到它每秒计时到0为止。

此标记将仅以分钟和秒为单位显示倒计时时间。此属性也可应用于常规时钟计时器。

代码语言:javascript
运行
复制
<timer countdown="10041" max-time-unit="'minute'" interval="1000">
     {{mminutes}} minute{{minutesS}}, {{sseconds}} second{{secondsS}}
</timer>

到达回调时更新值的倒计时计时器

代码语言:javascript
运行
复制
<timer countdown="3" interval="1000" finish-callback="callbackTimer.finished()">
    {{seconds}} second{{secondsS}}
</timer>
票数 1
EN

Stack Overflow用户

发布于 2015-12-13 01:08:24

你的错误很简单,而且很容易改正。JavaScript总是使用以毫秒为单位的时间,因此6000个相等到6秒。如果你尝试这样做,它应该会起作用:

代码语言:javascript
运行
复制
<timer end-time="60000">{{days}} days, {{hours}} hours, {{minutes}} minutes, {{seconds}} seconds.</timer>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34242497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档