Как интерполировать текущее значение переменной в Angular? - PullRequest
1 голос
/ 02 декабря 2019

У меня есть этот код в моем файле TS:

currentDate;
get_current_date() {
  this.currentDate = formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss', 'en');
}

И это в моем HTML внутри директивы ngFor:

<span class="hist-time">
  {{ currentDate }}
</span>

Как мне получить текущее значение currentDate такчто currentDate будет отображать разные даты, а не одну и ту же дату при каждом обновлении?

Пример:

2019-12-02 13:06:01
2019-12-02 13:06:13
2019-12-02 13:06:26
2019-12-02 13:06:51

, а не:

2019-12-02 13:06:01
2019-12-02 13:06:01
2019-12-02 13:06:01
2019-12-02 13:06:01

Ответы [ 2 ]

3 голосов
/ 02 декабря 2019

Вы можете добавить текущее время в массив после регулярного интервала.

Попробуйте сделать так:

Рабочая демонстрация

.ts

import { interval } from "rxjs";

currentTime = [];

constructor() {
   this.currentTime.push(new Date());
   interval(10000).subscribe(x => {
     this.currentTime.push(new Date());        
   });
}

.html

<p *ngFor="let time of currentTime"> 
     {{ time | date: 'yyyy-MM-dd HH:mm:ss' }}
</p>
0 голосов
/ 02 декабря 2019

Модифицированная версия сообщения @Adrita Sharma, если вы не хотите печатать все значения

import { interval, Observable, of } from "rxjs";

currentTime: Observable<Date>;

constructor() {
   this.currentTime = of(new Date());
   interval(10000).subscribe(x => {
     this.currentTime = of(new Date());        
   });
}

**HTML**
<p>{{currentTime | async | date: 'yyyy-MM-dd HH:mm:ss' }}</p>
...