ng升级两个版本的Highcharts,报错16
ngUpgrade two versions of Highcharts, error 16
我有一个升级的应用程序可以使用 ngUpgrade,目前运行良好,但我 运行 在尝试合并 Highcharts 时遇到了问题。
原始应用包含不同版本的 highcharts(AngularJS 的旧版本)。
使用 Angular 的新(混合记忆)应用程序具有不同版本的 highcharts。
当同时使用它们时,我 运行 出现错误 #16,Highcharts 已经实例化,这是有道理的。
我的问题是,如何避免这种情况?
如果我删除旧的 highcharts,旧的应用程序将不会检测到新的 angular highcharts。如果我删除新的,尝试通过 window 对象访问 highcharts 引用不起作用,因为 highcharts 似乎无法检测新 angular 的模板并且不知道如何使用它。
有没有人在应用程序的两个部分(旧的和新的)上制作一个带有高图表的混合应用程序?
Highcharts 对象保存在 Window
对象的 Highcharts
属性 中。 Highcharts 检查它是否已在此 属性 中定义,如果为真则抛出错误 16。
解法:
您可以尝试在其他 属性 中保存其中一个版本的 Highcharts 并在加载其他版本之前清除 Window.Highcharts
:
HTML:
<script src="https://code.highcharts.com/4.2.2/highcharts.src.js"></script>
<script>
this.HighchartsOld = this.Highcharts;
this.Highcharts = null;
</script>
<script src="https://code.highcharts.com/highcharts.src.js"></script>
<div id="container1" style='height: 200px'></div>
<div id="container2" style='height: 200px'></div>
JS:
var chart = Highcharts.chart('container1', {
series: [{
data: [1, 2]
}]
});
var chart = HighchartsOld.chart('container2', {
series: [{
data: [1, 2]
}]
});
我有一个升级的应用程序可以使用 ngUpgrade,目前运行良好,但我 运行 在尝试合并 Highcharts 时遇到了问题。
原始应用包含不同版本的 highcharts(AngularJS 的旧版本)。
使用 Angular 的新(混合记忆)应用程序具有不同版本的 highcharts。
当同时使用它们时,我 运行 出现错误 #16,Highcharts 已经实例化,这是有道理的。
我的问题是,如何避免这种情况?
如果我删除旧的 highcharts,旧的应用程序将不会检测到新的 angular highcharts。如果我删除新的,尝试通过 window 对象访问 highcharts 引用不起作用,因为 highcharts 似乎无法检测新 angular 的模板并且不知道如何使用它。
有没有人在应用程序的两个部分(旧的和新的)上制作一个带有高图表的混合应用程序?
Highcharts 对象保存在 Window
对象的 Highcharts
属性 中。 Highcharts 检查它是否已在此 属性 中定义,如果为真则抛出错误 16。
解法:
您可以尝试在其他 属性 中保存其中一个版本的 Highcharts 并在加载其他版本之前清除 Window.Highcharts
:
HTML:
<script src="https://code.highcharts.com/4.2.2/highcharts.src.js"></script>
<script>
this.HighchartsOld = this.Highcharts;
this.Highcharts = null;
</script>
<script src="https://code.highcharts.com/highcharts.src.js"></script>
<div id="container1" style='height: 200px'></div>
<div id="container2" style='height: 200px'></div>
JS:
var chart = Highcharts.chart('container1', {
series: [{
data: [1, 2]
}]
});
var chart = HighchartsOld.chart('container2', {
series: [{
data: [1, 2]
}]
});