我希望获得divArea
的高度并将其存储在scrollTop
变量中
但是,当我在onInit函数中初始化scrollTop
到this.divArea.nativeElement.offsetHeight
时,发生了错误
错误是divArea
为空。
一种解决方法是使用setTimeout().
但我不想使用settimeout()
如何解决这个问题?
<div #divarea>
<p>Hello1</p>
<p>Hello1</p>
<p>Hello1</p>
<p>Hello1</p>
</div>
<div [style.top.px]="scrollTop">
...
</div>
export class test implements OnInit {
public scrollTop: number;
@ViewChild('divarea') private divArea: ElementRef;
public ngOnInit() {
this.scrollTop = this.divArea.nativeElement.offsetHeight; // result: error
}
}
答案 0 :(得分:0)
使用此 -
ngAfterViewInit() {
this.scrollTop = this.divArea.nativeElement.offsetHeight; // result: error
}
您可以在角度的(#divArea)
挂钩中使用本地变量ngAfterViewInit
。
同样@View Child
应为@ViewChild
,且不得有任何空格。
<div #divarea">
应为<div #divarea>