我有一个组件ComponentA。对于不同的设备有一些dom操纵。当浏览器调整大小时,我不想为每台设备修复它们。
这就是为什么我想重新初始化整个组件的原因。有没有办法做到这一点?
或任何其他解决方案将非常有用。
提前谢谢你。 :)
答案 0 :(得分:0)
如果正确理解了您的问题,那么您可以只为组件添加下一个方法:
@HostListener('window:resize', ['$event'])
onResize(event) {
// event.target.screen.width is the current screen size
// you can reinit your component here
}
更新。 另一种捕获窗口大小调整事件的方法是
import {FromEventObservable} from 'rxjs/observable/FromEventObservable';
import {debounceTime} from 'rxjs/operators';
initOnWindowResize() {
FromEventObservable.create(window, 'resize')
.pipe(
debounceTime(500)
)
.subscribe((event: any) => {
// Do something here
});
}
ngOnInit(): void {
this.initOnWindowResize();
});
答案 1 :(得分:0)
无法以编程方式破坏或重新初始化Angular中的组件。如果没有更多的变量或DOM元素引用它,组件将自动销毁。
编辑:为了解决您的问题,我建议您查看代码nikolayandr发布。