У меня есть класс модели под названием Task.В нем я получаю время выполнения, создав функцию, которая возвращает наблюдаемую ...
public getRunningTime(): Observable<number> {
const runningTimeObservable = new Observable<number>(observer => {
setInterval(() => {
if (this.isActive) {
const currentTime = new Date().getTime();
observer.next(currentTime - this.startTime);
}
observer.next(this.endTime - this.startTime);
}, 5000);
});
return runningTimeObservable;
}
Я связываю эту модель задач с компонентом под названием TaskListComponent.Этот компонент содержит объект, содержащий каждую задачу.
export class TaskListComponent {
tasks: object;
constructor(
private taskRepositoryService: TaskRepositoryServiceService,
private taskFactoryService: TaskFactoryService,
private taskInputDialog: MatDialog) {
this.tasks = taskRepositoryService.getAllTasks();
}
К которой в шаблоне я использую ngFor для итерации.
<ul>
<li *ngFor="let task of tasks | keyvalue">
{{task.value._name}} - {{task.value._color}} <span *ngIf="task.value.startTime">- {{task.value.getRunningTime() | async}}</span>
<button mat-button color="warn" (click)="removeTask(task.value)">Remove</button>
<button mat-button (click)="updateTask(task.value)">Update</button>
<button mat-button (click)="startTask(task)">Start</button>
</li>
</ul>
Я пытаюсь получить время выполненияотображается и обновляется каждые 5 секунд с использованием {{task.value.getRunningTime() | async}}
, но, похоже, на экране ничего не отображается.
Любая помощь?Я не думаю, что я делаю это наблюдаемое правильно ... но я не уверен, как я могу создать динамическое значение в моей модели задач ... которое постоянно обновляется в представлении.