首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HighCharts股票图错误码18

HighCharts股票图错误码18
EN

Stack Overflow用户
提问于 2013-12-16 18:30:16
回答 3查看 5.7K关注 0票数 2

我正在尝试使用gwt- using图表(使用最新的gwt-using图表1.6.0和Highstock 2.3.4版本)向我的图表应用程序添加系列。在第三季之前一切都很好。当我试图添加第三个错误时,我得到了以下错误:

代码语言:javascript
运行
复制
com.google.gwt.core.client.JavaScriptException: (String) 
@org.moxieapps.gwt.highcharts.client.BaseChart::nativeAddSeries(Lcom/google/gwt/core
/client/JavaScriptObject;Lcom/google/gwt/core/client/JavaScriptObject;ZZ)([JavaScript 
object(4953), JavaScript object(5135), bool: true, bool: true]): Highcharts error #18:
www.highcharts.com/errors/18

下面是我的代码(在循环中运行):

代码语言:javascript
运行
复制
            // Create a new serie with a new yAxis
        Series newSeries = chart.createSeries().setYAxis(index).setPlotOptions(new LinePlotOptions().setColor(tag.getColor()));

        // Set new yAxis options
        chart.getYAxis(index).setPlotLines(chart.getYAxis(index).createPlotLine().setValue(0).setWidth(1).setColor(tag.getColor())).setLabels(new YAxisLabels().setEnabled(false)).setTickLength(0).setOffset(60).setStartOnTick(false)
                .setEndOnTick(false).setGridLineWidth(0).setMaxPadding(DEFAULT_YAXIS_MAX_PADDING).setMinPadding(DEFAULT_YAXIS_MIN_PADDING)
                .setAxisTitle(new AxisTitle().setText(null).setStyle(new Style().setColor(tag.getColor())));

        // Add the serie to the chart
        chart.addSeries(newSeries.setName("Test " + index));

正如我前面所说的,前两个系列没有问题,但是第三个系列抛出了上面的异常(当我调试应用程序时,我可以看到新创建的yAxis引用)。

下面是抛出异常的行:

代码语言:javascript
运行
复制
chart.addSeries(newSeries.setName("Test " + index));

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-17 12:05:25

我终于想出来了!

GWT-高图表似乎是问题所在。它根本不向图表添加新的YAxis。因此,您必须通过这样的本地调用添加YAxis;

代码语言:javascript
运行
复制
private static native void nativeAddAxis(JavaScriptObject chart, JavaScriptObject axisOptions, boolean isX, boolean redraw, boolean animationFlag) /*-{
    chart.addAxis(axisOptions, isX, redraw, animationFlag);
}-*/;

在添加新系列之前,只需调用这个本机方法即可。

代码语言:javascript
运行
复制
            // Create new series
        Series newSeries = chart.createSeries().setYAxis(index);
        newSeries.setPlotOptions(new LinePlotOptions().setColor(tag.getColor()));
        newSeries.setName(index + 1 + ") ");

        // Create a new YAxis
        YAxis yAxis = chart.getYAxis(index).setPlotLines(chart.getYAxis(index).createPlotLine().setValue(0).setWidth(1).setColor(tag.getColor())).setLabels(new YAxisLabels().setEnabled(false)).setTickLength(0).setOffset(60)
                .setStartOnTick(false).setEndOnTick(false).setGridLineWidth(0).setPlotLines().setMaxPadding(DEFAULT_YAXIS_MAX_PADDING).setMinPadding(DEFAULT_YAXIS_MIN_PADDING)
                .setAxisTitle(new AxisTitle().setText(null).setStyle(new Style().setColor(tag.getColor())));

        // IMPORTANT!: New YAxis must be added to the chart via native calls since gwt-highcharts wrapper doesn't do that properly!
        nativeAddAxis(chart.getNativeChart(), yAxis.getOptions().getJavaScriptObject(), false, false, false);

        // Physical attach
        chart.addSeries(newSeries);
票数 2
EN

Stack Overflow用户

发布于 2013-12-28 16:34:55

以下是这类错误的原因:

如果使用的是GWT-高图表包装器,则必须在向DOM添加图表之前进行配置!似乎在将其添加到DOM之后,任何配置更改似乎根本不起作用!

编码愉快!

票数 2
EN

Stack Overflow用户

发布于 2013-12-17 05:10:43

请检查索引值。如果索引大于轴数,则可能发生此错误。

高图表错误#18表示试图访问的轴不存在。

这是链接http://www.highcharts.com/errors/18

希望这对你有帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20618155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档