Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在angular 6中创建秒表

在angular 6中创建秒表
EN

Stack Overflow用户
提问于 2019-03-04 11:47:47
回答 4查看 6.6K关注 0票数 1

我使用的是angular。我想实现秒表。我有一个由一个或多个对象组成的列表。我有一个开始计时器和每个项目的结束计时器按钮。当我点击start按钮时,这应该会启动特定项目的计时器&当我点击end timer按钮时,这应该会暂停计时器,以便我可以重新开始计时。但一次只能运行一个计时器。如果项目A计时器已启动&如果单击项目B的启动计时器按钮,则应暂停前一个计时器并启动项目B的新计时器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
allUserTaskArr = [
    {
      'name': 'abc',
     'id':1,
     'start': true,
     'end': false
    },
     {
      'name': 'xyz',
     'id':1,
     'start': true,
     'end': false
    }

  ];
 
 startTask (item) {
    if(item.start) {
      item.end =  true;
      item.start= false;
    } 
  }

  EndTask (item) {
    if(item.end) {
      item.end =  false;
      item.start= true;
    }
  }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="row no-gutters">
  <div class="card width hr" *ngFor="let item of allUserTaskArr">
    <div class="card-header">
      {{item.due | date}}
    </div>
    <div class="card-body pad-125">
      <div class="row no-gutters">
        <div class="col-md-12">
          {{item.name}}
          <div class="float-right">
            <button class="btn btn-info mar-l-r-0-5" *ngIf="item.start" (click)="startTask(item)">Start Timer</button>
            <button class="btn btn-danger mar-l-r-0-5" *ngIf="item.end" (click)="EndTask(item)">End Timer</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

EN

回答 4

Stack Overflow用户

发布于 2019-03-04 12:37:20

您将需要创建一个计时器,它是您可以订阅的可观察对象。在回调中执行操作。例如:

在组件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { timer } from "rxjs";

ngOnInit() {
    timer(0, 1000).subscribe(ellapsedCycles => {
      if(this.isRunning) {
        this.time--;
      }
    });
  }

toggleTimer() {
    this.isRunning = !this.isRunning;
  }

在模板中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button (click)="toggleTimer()">Toggle timer</button>
<div>{{ time }}</div>
票数 2
EN

Stack Overflow用户

发布于 2019-08-19 09:35:53

创建一个每秒增长的计时器,然后将时间转换为显示格式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   timer(0, 1000).subscribe(ec => {
          this.time++;
          this.timerDisplay = this.getDisplayTimer(this.time);
        });

getDisplayTimer(time: number) {
    const hours = '0' + Math.floor(time / 3600);
    const minutes = '0' + Math.floor(time % 3600 / 60);
    const seconds = '0' + Math.floor(time % 3600 % 60);

    return {
      hours: { digit1: hours.slice(-2, -1), digit2: hours.slice(-1) },
      minutes: { digit1: minutes.slice(-2, -1), digit2: minutes.slice(-1) },
      seconds: { digit1: seconds.slice(-2, -1), digit2: seconds.slice(-1) },
    };
  }`
票数 1
EN

Stack Overflow用户

发布于 2019-03-04 12:34:26

您正在启动和结束同一个计时器,因为您传递了foreach循环的当前item。因此,您可以更改同一项/计时器的属性。

要解决这个问题,您需要找到当前正在运行的项/计时器,因此对于startTask方法,请执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
startTask (item) {
   // Find current running timer
   var runningTimer = this.allUserTaskArr.find(ti => ti.start === true);
   // Stop this timer
   runningTimer.start = false;
   runningTimer.end = false;

   // Start the timer you pressed
   item.start = true;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54982625

复制
相关文章
秒表检定仪时间检定仪检定电子秒表/机秒表
SYN5301型时间检定仪是根据JJG237-2010《秒表检定规程》的要求制作的一款多功能,综合性的时间检定自动测试装置,用于检定机械秒表、电子秒表、指针式电秒表、数字式电秒表、数字式毫秒仪,以及各种计时器等,被测仪器通过测量该标准时间间隔信号,得到被检仪器测量该标准时间间隔信号的实际测量值,从而得到被检仪器测量误差,达到检定的目的,适用于各种类秒表的量值传递,可以建立秒表检定仪标准装置,开展对时间类仪器进行检定/校准。
时频专家
2020/01/19
1.1K0
秒表检定仪时间检定仪检定电子秒表/机秒表
在 Angular 应用中创建包含组件
包含组件就是指可以包含其它组件的组件, 以 Bootstrap 的卡片 (Card) 为例, 它包含页眉 (header) 、 主体 (body) 和 页脚 (footer) , 如下图所示:
beginor
2020/08/07
4.8K0
在 Angular 应用中创建包含组件
Angular 动态创建组件
上面代码中,我们定义了一个简单的 AlertComponent 组件,该组件有一个输入属性 type ,用于让用户自定义提示的类型,此外还包含了一个输出属性 output,用于向外部组件输出信息。我们的自定义组件最终是一个实际的 DOM 元素,因此如果我们需要在页面中插入该元素,我们就需要考虑在哪里放置该元素。
阿宝哥
2019/11/05
3.7K0
秒表检定装置秒表检定仪时间检定仪秒表检定设备
该款设备结合了秒表检定仪、日差测量仪/校表仪、指针式电秒表检定仪、标准时间间隔发生器等4种功能,采用高稳定度石英晶体振荡器作为时间基准,使用7寸大液晶触摸屏,采用大规模集成电路FPGA技术,全数字控制,实现高精度时间间隔输出,整机具有高稳定度、高准确度的优点,功能完善,操作方便,抗干扰能力强。可供各级计量部门、工厂、院校及各科研单位检定401/405电秒表,407/408电秒表、411数字式毫秒计、415/417/417B型数字式电秒表等时间类仪器。
时频专家
2020/01/15
7560
秒表检定装置秒表检定仪时间检定仪秒表检定设备
秒表检定仪时间检定仪检定电子/机械秒表
     SYN5301型秒表检定仪时间检定仪是一款高精度时间检定仪。本设备是根据JJG237-2010《秒表检定规程》的要求制作的一款多功能,综合性的时间检定自动测试装置,用于检定机械秒表、电子秒表、指针式电秒表、数字式电秒表、数字式毫秒仪,以及各种计时器等,被测仪器通过测量该标准时间间隔信号,得到被检仪器测量该标准时间间隔信号的实际测量值,从而得到被检仪器测量误差,达到检定的目的,适用于各种类秒表的量值传递,可以建立秒表检定仪标准装置,开展对时间类仪器进行检定/校准。
时频专家
2020/01/16
9360
秒表检定仪时间检定仪检定电子/机械秒表
Angular核心-创建对象-HttpClient
方式1:手工创建式—自己创建:let c2 =new Car() 方式2:依赖注入式—无需自己new,只需要声明依赖;服务提供者就会创建被依赖的对象,注入给服务需要者
用户9857551
2022/06/28
1.3K0
Angular核心-创建对象-HttpClient
python小练习----秒表
from tkinter import * import time class StopWatch(Frame):     '''实现一个秒表部件'''     msec=50     def __init__(self,parent=None,**kw):         Frame.__init__(self,parent,kw)         self._start = 0.0         self._elapsedtime =0.0         self._running = False         self.timestr = StringVar()         self.makeWidgets()     def makeWidgets(self):         '''制作时间标签'''         l = Label(self,textvariable=self.timestr)         self._setTime(self._elapsedtime)         l.pack(fill=X,expand=NO,pady=2,padx=2)     def _update(self):         '''用逝去的时间更新标签'''         self._elapsedtime=time.time() - self._start         self._setTime(self._elapsedtime)         self.timer = self.after(self.msec,self._update)     def _setTime(self,elap):         '''将时间格式改为分:秒:百分秒'''         minutes = int(elap/60)         seconds = int(elap-minutes*60.0)         hseconds = int((elap-minutes*60.0-seconds)*100)         self.timestr.set('%02d:%02d:%02d:'%(minutes,seconds,hseconds))     def Start(self):         '''开始秒表'''         if not self._running:             self._start = time.time() - self._elapsedtime             self._update()             self._running = True     def Stop(self):         '''停止秒表'''         if self._running:             self.after_cancel(self.timer)             self._elapsedtime = time.time()-self._start             self._setTime(self._elapsedtime)             self._running = False     def Reset(self):         '''重设秒表'''         self._start = time.time()         self._elapsedtime = 0.0         self._setTime(self._elapsedtime) if __name__ =='__main__':     def main():         import tkinter         root =Tk()         sw =StopWatch()         sw.pack(side=TOP)         Button(root,text='Start',command=sw.Start).pack(side=LEFT)         Button(root,text='Stop',command=sw.Stop).pack(side=LEFT)         Button(root,text='Reset',command=sw.Reset).pack(side=LEFT)         Button(root,text='Quit',command=sw.quit).pack(side=LEFT)         root.mainloop()     main()
用户7886150
2020/12/28
9450
用Angule Cli创建Angular项目
okaychen
2018/01/05
1.5K0
用Angule Cli创建Angular项目
Angular入门-环境搭建、创建新项目
安装angular的计算机上面必须装最新的nodejs--最好安装nodejs稳定版本
用户9857551
2022/06/28
4470
Angular自定义组件创建步骤
自己创建一个.ts文件 Component装饰器(Decorator)用于指定class的用法 selector:选择器
用户9857551
2022/06/28
8370
解决angular创建项目报错:setTimeout is not defined
这样的报错应该就是用cnpm安装的angular/cli,我们需要卸载它,用npm重新安装
编程内马尔
2022/11/15
5310
解决angular创建项目报错:setTimeout is not defined
Angular Elements 组件在非angular 页面中使用的DEMO
      Angular Elements 是伴随Angular6.0一起推出的新技术。它借助Chrome浏览器的ShadowDom  API,实现一种自定义组件。 这种组件可以用Angular普通组件的开发技术进行编写,学习成本低,当它构建好后生成一个打包的js文件。如果页面引入该Js文件 ,就相当于在页面中新增了一个标签,所以在任意框架中都可以使用新标签,就像它是原生div一样。
申君健
2018/09/21
2.7K0
Angular Elements 组件在非angular 页面中使用的DEMO
Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
  最近一直在使用阿里的NG-ZORRO(Angular组件库)开发公司后端的管理系统,写了一段时间的Angular以后发现对于我们.NET后端开发而言真是非常的友善。因此这篇文章主要是对这段时间使用Angular做一些小总结,希望可以帮到有需要的同学。
追逐时光者
2020/12/23
2.8K0
Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
点击加载更多

相似问题

使用ng2-simple-timer在angular中创建秒表

220

在swift中创建秒表

312

在Javascript中创建秒表

23

如何创建秒表

11

在MS Access中创建秒表

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文