在我的角度应用程序中,我有一个DIV,我要根据DIV中显示的内容为其设置属性[scrollTop]。 我内部有一个角度数据表,当没有值时,其默认高度为36。 我想通过单击将值重置为零的按钮重置为默认高度。
我收到一个错误:ExpressionChangedAfterItHasBeenCheckedError:检查表达式后,表达式已更改。上一个值:“ 224”。当前值:“ 46”。
<div #scrollMe [scrollTop]="scrollMe.scrollHeight">
<data-table [selectColumn]="true" [items]="LST">
</DATA-TABLE>
</DIV
答案 0 :(得分:0)
使用ChangeDetectorRef
。它是一个变更收集树,收集所有要检查变更的视图。更改视图后,您需要重新渲染视图。这为您解决了问题。
将视图标记为脏视图,这意味着它们已更改并且需要 重新呈现。
将其导入您的组件中
import { ChangeDetectorRef, AfterContentChecked} from '@angular/core';
在您的构造函数中将其初始化:
constructor(
private cdref: ChangeDetectorRef) { }
并在方法末尾检查更改(用按钮绑定方法):
this.cdref.detectChanges();