角度4根据视图

时间:2017-06-20 12:46:44

标签: angular angular2-template angular2-directives angular2-animation

我有一个像

的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;我需要一个条件来阻止它。感觉很乱,也不错。

1 个答案:

答案 0 :(得分:1)

将代码包装到setTimeout函数中。像

ngAfterViewInit(): void {
  setTimeout({...calculation});
}