我有來自后臺的靜態時間戳,我想每隔1秒重繪 一次管道以獲得從現在開始的日期。 而這是我的管道
import { Pipe, PipeTransform } from '@angular/core'。
import moment from 'moment';
@Pipe({
name: 'dateFormat'。
})
export class DateFormatPipe 實作PipeTransform {
transform(date: string) : string {
return moment.utc(date, 'X') 。 local().format('DD-MM-YYY h:mm:ss a'/span>)。
}
在這種情況下,它只是將時間戳轉換為這種格式,我想保持日期更新,我怎么做呢?
uj5u.com熱心網友回復:
你應該回傳一個可觀察的資料并使用asyncPipe。
import { Pipe, PipeTransform } from '@angular/core'。
import * as moment from 'ment';
import { interval, Observable } from 'rxjs'/span>;
import { map } from 'rxjs/operators'/span>;
@Pipe({
name: 'dateFormat'。
})
export class DateFormatPipe 實作PipeTransform {
transform(date: string)。Observable<string> {
return interval(1000)。 pipe(map(() => { return moment() 。 format('DD-MM-YYY h:mm:ss a') });
}
}
而你應該像這樣使用它。
{{'param' | dateFormat | async}}
uj5u.com熱心網友回復:
我認為你只需每秒重繪 傳入管道的時間即可?
就像
currentTime$ = Observable.interval(1000)。 pipe(map(() => { return new Date() }) ))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332363.html
標籤:
下一篇:Angular12/rxjs。等待串列獲取(即通過forkjoin/combineLatest/etc)完成后再進行(單獨的函式)。
