You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ng2-google-charts加载器版本错误:IE刷新时提示Bad version:45.2

解决IE下ng2-google-chart刷新时"Bad version: 45.2"错误的方案

我之前遇到过类似的IE兼容问题,结合你的环境和报错信息,给你几个可行的解决方向:

1. 强制指定Google Charts的版本号

这个错误的核心原因是chart.service.loader错误地将IE的浏览器版本(45.2应该是userAgent里的某个字段)当成了Google Charts的版本号,请求了不存在的图表版本。解决这个问题最直接的方式就是手动指定稳定的图表版本,不让loader自动检测:

在你的根模块(比如AppModule)中导入GoogleChartsModule时,通过forRoot配置强制设置版本:

import { GoogleChartsModule } from 'ng2-google-charts';

@NgModule({
  imports: [
    // 配置为官方稳定版,也可以指定具体版本号如'49'
    GoogleChartsModule.forRoot({
      version: 'current',
      language: 'zh-CN' // 根据你的需求设置语言
    })
  ]
})
export class AppModule { }

如果是组件级别的使用,也可以在组件内注入ChartLoaderService手动设置版本:

import { ChartLoaderService } from 'ng2-google-charts';

constructor(private chartLoader: ChartLoaderService) {}

ngOnInit() {
  // 覆盖自动检测的版本
  this.chartLoader.chartVersion = 'current';
}

2. 完善Angular的IE兼容Polyfill

Angular 6对IE的支持需要启用必要的polyfill,确保你已经在polyfills.ts中配置了以下内容(取消对应注释):

// IE11需要的core-js polyfill
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';

// Zone.js相关polyfill
import 'zone.js/dist/zone';
// 如果用到RxJS,需要这个patch
import 'zone.js/dist/zone-patch-rxjs';
// 图表渲染可能需要的canvas patch
import 'zone.js/dist/zone-patch-canvas';

另外,如果你的项目中还用到了其他ES6+特性,可能需要添加额外的polyfill,比如classlist.js(针对IE11的classList支持)。

3. 清理缓存避免旧版本残留

有时候缓存会导致错误的版本信息残留,尝试以下操作:

  • 清除IE浏览器的缓存(快捷键Ctrl+Shift+Delete,勾选所有缓存相关选项后删除)
  • 清理Angular的构建缓存:运行ng clean命令,之后重新执行ng build(生产环境建议加--prod参数)

4. 检查ng2-google-chart的适配问题

虽然你已经降级到3.3版本,但可以确认该版本是否明确支持Angular 6和IE11。如果还是有问题,可以尝试锁定Google Charts的具体版本号(比如'48',这个版本是经过验证的稳定版,对IE兼容较好),而不是用'current'。

内容的提问来源于stack exchange,提问作者Jamil89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:45:40