我在highcharts.js中使用highcharts-ng
每当我启动图形时,都会出现此错误:
angular.js:13920 TypeError: Cannot read property 'pos' of undefined
at https://code.highcharts.com/stock/highstock.js:518:422
at Array.forEach (<anonymous>)
at a.each (https://code.highcharts.com/stock/highstock.js:27:466)
at F.<anonymous> (https://code.highcharts.com/stock/highstock.js:518:396)
at F.a.(anonymous function) [as getPlotLinePath] (https://code.highcharts.com/stock/highstock.js:19:437)
at a.Tick.renderGridLine (https://code.highcharts.com/stock/highstock.js:113:264)
at a.Tick.render (https://code.highcharts.com/stock/highstock.js:115:472)
at F.renderTick (https://code.highcharts.com/stock/highstock.js:159:427)
at https://code.highcharts.com/stock/highstock.js:160:448
at Array.forEach (<anonymous>)
有任何想法吗?
嗨@ Lir10
您可以联系我们的支持人员吗? 参见: https :
我们将github问题用于错误报告。 就您而言,我不确定这是Highstock中的错误,图表配置错误还是highcharts-ng模块中的错误。
有任何想法吗?
只有一个主意:错误提示xAxis / yAxis会出现问题,因此我将尝试删除在那里定义的选项,看看是否可以解决问题。 如果是,那么请在jsfiddle中重新创建问题,而无需highcharts-ng,以确保这是Highstock lib中的错误。
嗨@pawelfus ,
您说对了-问题出在xAxis刻度上
解决问题
请问@ Lir10是什么问题? 我有同样的问题,正在尝试查明原因。 谢谢!
@bobheadxi
我建议这样做:
有任何想法吗?
只有一个主意:错误提示xAxis / yAxis会出现问题,因此我将尝试删除在那里定义的选项,看看是否可以解决问题。 如果是,那么请在jsfiddle中重新创建问题,而无需highcharts-ng,以确保这是Highstock lib中的错误。
@ Lir10 ,如果您还记得的话,能否请您描述问题出在哪里? 我面临着同样的问题,但是我无法把握情况,它只是随机发生,不幸的是,
嗨@davletovalmir
如果您能够提供稳定的方式来重现问题,请共享演示或所需文件的链接。
@KacperMadej ,我尚未找到根本原因,但是这是我发现的内容(对于下面的混淆代码,我很抱歉):
step
函数中引发错误:d.group.animate({
scaleY: 1
}, G(z(d.options.animation), {
step: function(a, b) {
h[f] = v + b.pos * (c.pos - v); /// <-- b is undefined
d.group.attr(h)
}
}))
step
函数,但具有上下文,但没有a
和b
args:animate: function(e, q, b) {
q = a.animObject(y(q, this.renderer.globalAnimation, !0));
y(m.hidden, m.msHidden, m.webkitHidden, !1) && (q.duration = 0);
0 !== q.duration ? (b && (q.complete = b),
h(this, e, q)) : (this.attr(e, null, b),
q.step && q.step.call(this)); /// <-- function called without arguments
return this
}
animate
函数是SVGElement
,并在render
函数内部被调用。我没有足够的时间来深入研究该问题。 希望我发现的内容对您有所帮助。
PS还附有屏幕截图,带有控制台错误。 不确定是否会有所帮助,但谁知道:)
@davletovalmir
谢谢您提供的信息-这足以让我重现问题。
这是代码修复的一种
https://jsfiddle.net/BlackLabel/L6x08jeq/1/
您可以将演示中的代码修复应用到您的代码中(就像模块一样-在Highcharts主文件之后)。 如果您有时间,请检查是否可以解决您应用中的错误。
仅供参考:未压缩,Highcharts相关文件的人类可读代码可通过使用带有.src.js
文件获得,例如highcharts.src.js
。
首次绘制图表时,主要是当焦点不在浏览器上时
这是需要检查的-这可能与最近的一项功能有关,该功能可以防止未聚焦的浏览器卡/窗口出现动画(因为没有人观看时无需进行动画处理)。
我能够在未缩小的代码中获得正确的相应代码。 此处的关键是使用列系列类型。
演示: https :
脚步:
_内部说明:_
H.pick((fx && fx.pos), 1)
而不是fx.pos
似乎可以解决问题,但需要进行测试才能确认。
@KacperMadej ,谢谢,这很有道理。 修复工程:)
您能否估计何时发布此修复程序?
@davletovalmir
该修复程序将于本周在PR中发布,并应与下一个Highcharts版本一起发布。
同时:
此问题是由于animate
函数绕过动画时未将适当的参数传递给step
,因此我改在那儿进行了修复。
@KacperMadej到下一次发布
下个版本(7.0.3)计划于本周末结束
是否有更新的预计到达时间?
回归测试正在进行中。 解决所有问题后,将发布新版本-我希望很快会发布新版本,最多几天。
现在发布了@yhoiseth
甜! 谢谢你让我知道🙂
出于某种原因,即使我正在“监视发布”此存储库,GitHub也没有通知我🤔
我不知道为什么您没有收到通知,但是仍然可以注册我们的邮件列表: https :
最有用的评论
下个版本(7.0.3)计划于本周末结束