0

我有一个 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 --> 我需要再次detectChanged,如果我每次都进行ChangeDetectorRef.detectChanges() --> 我将进入一个循环。 --> 我需要停止它的条件。感觉很老套和错误。

4

1 回答 1

1

将您的代码包装到 setTimeout 函数中。喜欢

ngAfterViewInit(): void {
  setTimeout({...calculation});
}
于 2017-06-20T13:42:13.993 回答