Есть пайп котрый показывает разницу времени.
import {Pipe} from "@angular/core";
@Pipe({name: 'ago'})
export class AgoPipe {
transform(date: Date): string {
return timeDifference(date);
}
}
function timeDifference() {...}
timeDifference - функция преобразования, которая выдает, например "20 seconds ago". Но пайп запускается только 1 раз, как сделать чтобы от пересчитывался, например раз в 10 секунд?
Я придумал частичный выход через использование компонента
import { Component, Input } from '@angular/core';
import { Subscription, Observable } from 'rxjs';
@Component({
selector: 'ago-renderer',
template: `<span>{{ago}}</span>`,
styles: [`:host {display: inline}`]
})
export class AgoRendererComponent {
@Input() time: any;
timer: Subscription;
ago: any;
ngOnInit() {
this.timer = Observable.interval(5000).subscribe(() => {
this.ago = timeDifferenceHumanise(this.time);
});
}
ngOnDestroy() {
this.timer.unsubscribe();
}
}
Но все же хочется Pipe