angular - 在两个组件中显示相同的时间计数
问题描述
我有一个用作计时器的按钮。我创建了一个服务,以便可以同时在多个组件中显示此按钮的操作。
我的问题是我无法在启动时显示两个组件的时间计数。我尝试了几种方法,但没有成功,有人可以帮助我吗?
html
<div class="btn-group" dropdown>
<button id="button-basic" dropdownToggle aria-controls="dropdown-basic">
<img *ngIf="taskService.getCurrentState() === 'pause' || taskService.getCurrentState() === undefined" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQcW6cJlI-KlS721hkuHDTMydZ_snrkhL9sm9wYHWRhd3FlvF1b&s" width="50" height="50">
<img *ngIf="taskService.getCurrentState() ==='start'"
src="https://png.pngtree.com/png-clipart/20190516/original/pngtree-pause-vector-icon-png-image_3791321.jpg" width="50" height="50">
</button>
<div class="timer">
<!-- <span>{{(taskService.timerForUsers[data.key.ID].currentTime * 1000) | date:'HH:mm:ss':'UTC'}}</span> -->
<!-- <span>{{(taskService.timerForUsers[data.key.ID].currentTime * 1000) | date:'HH:mm:ss':'UTC'}}</span> -->
</div>
解决方案
传递data
tonavbar
组件,以便data[0].ID
在组件中可用navbar
。
// app.component.html
<app-navbar [data]="data"></app-navbar>
访问,data
在navbar
组件使用@Input()
-组件交互。
// navbar.component.ts
import { Component, OnInit, Input } from '@angular/core';
@Input() data;
// navbar.component.html
<span *ngIf="data.length > 0">{{(taskService.timerForUsers[data[0].ID].currentTime * 1000) | date:'HH:mm:ss':'UTC'}}</span>
推荐阅读
- reactjs - 将 Json 数据映射到反应中的下拉列表
- amazon-web-services - 在我的 AWS Deep Learning AMI EC2 实例上删除并重新安装 Anaconda,现在无法进入预配置的深度学习环境
- python-2.7 - 使用 PySpark 从表中识别分区键列
- php - 如何使用 php 代码在 GCE 上创建凭证(用于谷歌表格)?
- mysql - 将 SQL 查询结果卸载到变量而不是 shell 脚本上的文件
- javascript - 仅当使用 knex 唯一时才插入
- python - 显示警报时从窗口警报中删除警报文本
- r - 将 2 个数据框与重复列合并?
- c# - 我正在制作一个相册查看器,但 MULTISELECT 只得到一张照片。怎么做?
- c# - 保存并加载我的 listview/observablecolletion 到 txt