我有一个视图,其中我想要提供自上次请求以来传递的毫秒数(类似于ping)。 e.g。
Ping: {{timePassed}}
我有一个带吸气剂的组件:
get timePassed() {
return new Date().getTime() - this.lastPacket;
}
显然,当我们两次获得 timePassed 时,我们会得到两个不同的值(即使差异为1 ms)。因此,我们将 ExpressionChangedAfterItHasBeenCheckedError 。
我完全清楚为什么会发生这种错误,但在这种情况下,我坚决要求这个值精确到1毫秒。
能够关闭这个特定值的双重检查真的很棒。
有人知道如何处理这个问题吗?
答案 0 :(得分:1)
您可以通过明确触发更改来处理此问题,
import { ChangeDetectorRef } from '@angular/core';
constructor(private cdr: ChangeDetectorRef) {}
get timePassed() {
this.timePassed = new Date().getTime() - this.lastPacket;
this.cdr.detectionChanges();
}