我有一个像
的div <div [ngClass]="{'active' : isActive} [ngStyle]={top: topVar } >
isActive和topVar是根据视图计算的(就像内容溢出,内容是动态的)。
所以我在ngAfterViewChecked中计算它们。
哪个问题给了我这个错误:
Expression has changed after it was checked, previous value : "undefined". current value : '636px'.
我明白我做错了什么,我的问题是,怎么做对了?
(如果我根据组件视图计算变量,我需要ngAfterViewChecked - &gt;我需要再次检测更改, 如果我每次都会制作ChangeDetectorRef.detectChanges() - &gt;我会进入一个循环。 - &GT;我需要一个条件来阻止它。感觉很乱,也不错。
答案 0 :(得分:1)
将代码包装到setTimeout函数中。像
ngAfterViewInit(): void {
setTimeout({...calculation});
}