Angular 2 - 有什么方法可以在调整大小时完全重新初始化组件 window?

Angular 2 - is there any way to completely re-initialize a component upon resize window?

我有一个组件ComponentA。对不同的设备有一些 dom 操作。当浏览器调整大小时,我不想为每台设备修复它们。

这就是为什么我想再次重新初始化整个组件。有什么办法吗?

或任何其他解决方案都会非常有帮助。

提前谢谢你。 :)

如果正确理解了您的问题,那么您可以将下一个方法添加到您的组件中:

  @HostListener('window:resize', ['$event'])
  onResize(event) {
    // event.target.screen.width is the current screen size
    // you can reinit your component here
  }

已更新。 捕获 window 调整大小事件的另一种方法是

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();
       });

无法以编程方式销毁或重新初始化 Angular 中的组件。如果没有更多变量或 DOM 个元素引用它,组件将自动销毁。

编辑:为了解决您的问题,我建议您查看 nikolayandr 发布的代码。