ошибка highcharts -13, пока графики были отрисованы

Я использую highcharts в своем угловом приложении. Несмотря на то, что мои диаграммы отображаются при загрузке, я все еще получаю highcharts # error-13 в моей консоли.

Я вызываю свой метод диаграммы рендеринга внутри ловушки жизненного цикла ngOnInit. Я также добавил проверку, чтобы убедиться, что метод должен вызываться только после того, как данные доступны.

Мой html: <div [attr.id]="chartContainerID" class="chart-container mt-0"></div>

Мой ts файл:

export class MyComponent implements OnInit, {
  chartContainerId: string;

  constructor(private xrangechart: XrangeChartService, ) {
    if (!this.chartContainerId) {
    this.chartContainerId = String(Math.random());
  }}

  ngOnInit() {
    // to do call the service here.
    this.getData();
  }

  renderChart(chartOptions: any) {
    const chart = this.xrangechart.renderChart(this.chartContainerId, chartOptions);
    if (chart) {
       this.plotShapes(chart);
    }
 }
 getData() {
   this.dataservice.subscribe(data => {
    if (data !== null && data !== undefined &) {
      console.log(data);
      this.dataReturned = data;
      this.renderChart(this.setChartOptions());
    }
  });
}


  setChartOptions() {
    const chartOptions: any = {};
    // Setting chart height
    chartOptions.height = 300;
    // Setting the click event on the label
    chartOptions.data = this.dataReturned.data;
    // to set the yaxis
    chartOptions.yAxis = {
        gridLineWidth: chartContainer.gridLineWidth,
        margin: 0,
        title: {
            text: ''
        },
        categories: this.data.categories,
        reversed: true
      };
    return chartOptions;
  }


  plotShapes(chart: any) {
    // some logic to plot shape
}

}

Ожидается: ошибки в консоли не должно быть, и диаграммы должны отображаться без ошибок


person Thushara    schedule 03.06.2019    source источник
comment
если вы сможете воспроизвести это на stackblitz, будет легче увидеть, в чем может быть проблема   -  person Akber Iqbal    schedule 03.06.2019


Ответы (1)


Эта ошибка возникает из-за того, что не найден контейнер, в котором будет отображаться ваша диаграмма. нравиться:

<div [attr.id]="chartContainerID" class="chart-container mt-0"></div>

перед отрисовкой диаграммы убедитесь, что у вашего div есть атрибут id. вы должны вызвать метод визуализации диаграммы после того, как div получите атрибут id. потому что в качестве начального числа вашего кода у вас есть динамический id в вашем div.

person Manish Balodia    schedule 03.06.2019
comment
Я попытался добавить проверку, прежде чем вызывать метод для рендеринга диаграммы, чтобы проверить, присутствует ли идентификатор контейнера. Но похоже, что это не работает - person Thushara; 03.06.2019
comment
Виден ли ваш контейнерный div в DOM? - person Manish Balodia; 03.06.2019
comment
да .. графики тоже отрисовываются .. но в консоли ошибка появляется. - person Thushara; 03.06.2019
comment
Не могли бы вы поделиться своим исходным кодом, чтобы найти проблему? - person Manish Balodia; 03.06.2019
comment
@Thushara, не могли бы вы поделиться решением или комментарием, у меня такая же проблема. Спасибо. - person Gunjan Anshul; 08.01.2021