Angular 在 ngAfterViewInit 或 ngOnInit 中激活@HostListener
Angular activate @HostListener in ngAfterViewInit or ngOnInit
我有一个组件正在侦听组件的高度和宽度。
@HostListener('window:resize', ['$event'])
onResize(event) {
this.thewidth = event.target.innerWidth;
this.theheight = event.target.innerHeight;
}
我的问题是在调整 window 大小之前我没有得到任何更改。
我也需要让它在加载组件时进行检查,这样我就有了初始高度和宽度。
我该怎么做?
您可以通过将 ElementRef
注入组件来获取对宿主组件的引用:
constructor(private elementRef: ElementRef){}
ngAfterViewInit() {
// timeout is needed when you are using `thewidth` or `theheight` inside your template
setTimeout(() => {
this.getHostDimensions();
});
}
@HostListener('window:resize')
getHostDimensions() {
const hostElement = this.elementRef.nativeElement;
this.thewidth = hostElement.innerWidth;
this.theheight = hostElement.innerHeight;
}
我有一个组件正在侦听组件的高度和宽度。
@HostListener('window:resize', ['$event'])
onResize(event) {
this.thewidth = event.target.innerWidth;
this.theheight = event.target.innerHeight;
}
我的问题是在调整 window 大小之前我没有得到任何更改。
我也需要让它在加载组件时进行检查,这样我就有了初始高度和宽度。
我该怎么做?
您可以通过将 ElementRef
注入组件来获取对宿主组件的引用:
constructor(private elementRef: ElementRef){}
ngAfterViewInit() {
// timeout is needed when you are using `thewidth` or `theheight` inside your template
setTimeout(() => {
this.getHostDimensions();
});
}
@HostListener('window:resize')
getHostDimensions() {
const hostElement = this.elementRef.nativeElement;
this.thewidth = hostElement.innerWidth;
this.theheight = hostElement.innerHeight;
}