我正在尝试在Angular应用中实现ResizeObserver:

const obs = new ResizeObserver(e => {
      // ...
});

...并且遇到TS错误:
TS2304: Cannot find name 'ResizeObserver'.

我试图用以下方式更新我的类型定义:
@types/resize-observer-browser

...但是我的问题仍然存在。是否有一个明智的解决方案或通用的解决方法,还是最好使用NPM软件包(如“调整大小观察者”)来继续前进?

很高兴在需要时提供更多信息。

Tks!

最佳答案

我从未使用过ResizeObserver,但是我确实将RxJS的fromEvent与resize事件一起使用,并且工作正常。这是它的代码。

import { fromEvent, Observable, Subscription } from "rxjs";

resizeObservable$: Observable<Event>;
resizeSubscription$: Subscription;

ngOnInit() {
  this.resizeObservable$ = fromEvent(element, 'resize')
  this.resizeSubscription$ = this.resizeObservable$.subscribe(evt => {
     // do whatever you waant
  })
}

ngOnDestroy() {
  this.resizeSubscription$.unsubscribe();
}

10-04 22:30