Chart.js 3+、Firefox 68 和 Angular:“ReferenceError:“ResizeObserver 未定义”

RBa*_*iak 2 polyfills chart.js angular

我有一个使用Chart.js3+ 的 Angular 应用程序,它需要在 Firefox 68 中运行。

Chart.js3+ResizeObserver在其代码中使用,该特定 Firefox 版本不支持该版本。

因此,当我尝试在 Firefox 中加载图表时,出现以下错误:

ReferenceError:“ResizeObserver 未定义”

在其他浏览器或较新版本的 Firefox 中,它可以正常工作。

经过一些研究,我读到我可以安装一个polyfill ResizeObserver,许多人建议如下: https: //github.com/juggle/resize-observer

因此,我通过键入将其安装在我的项目中npm i @juggle/resize-observer,然后将其添加到polyfill.ts文件中:

import '@juggle/resize-observer';
import 'zone.js/dist/zone'; 
Run Code Online (Sandbox Code Playgroud)

但错误仍然存​​在。我错过了什么吗?

提前致谢。

Lee*_*lee 5

看看其他人如何修复它,似乎您仍然需要在使用 Chart.js 执行任何操作之前将其注册到浏览器,以便它可以使用它:

import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer';

if (typeof window !== 'undefined') {
  window.ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill;
}
Run Code Online (Sandbox Code Playgroud)

来自: https: //github.com/jenkins-infra/plugin-site/pull/714