Как загрузить данные в конструктор и визуализировать их через Chartjs в ngAfterViewInit? - PullRequest
0 голосов
/ 14 декабря 2018

Вот моя проблема.Многие примеры использования Chartjs в Angular предполагают, что данные уже есть , и они отображают их в ngAfterViewInit.

Однако я не могу понять, как встретить моитребования:

  • Мне нужно загрузить данные в конструкторе
  • При загрузке данных я установил логический атрибут для отображения неопределенного mat-spinner
  • Конечно,загрузка данных действительно неопределенная, и я не могу знать, когда она будет загружена (возможно, земля обещания)
  • Когда данные загружены, мне нужно использовать Chartjs API для рисования данных на холст
  • Если ясделать это в конструкторе, тогда я сталкиваюсь с нулевой ссылкой для document.getElementById('canvasId'), так как она еще не отрисована.
  • Если я загружаю данные в constrcutor и хочу отобразить canvas в ngAfterViewInit, тогда я не знаюкогда данные загружаются, поскольку они неопределенные, и я сталкиваюсь с нулевой ссылкой для свойств моего объекта данных.
  • Если я загружаю данные в ngAfterViewInit, то Angular жалуется, что ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'ngIf: undefined'. Current value: 'ngIf: true'.Эта ошибка связана с mat-spinner *ngIf='progress'

Я застрял в этой точке на том, как согласовать эти требования.Любая помощь?

1 Ответ

0 голосов
/ 24 января 2019

Этот пост использует сервис для получения данных и визуализации диаграммы после загрузки данных.Надеюсь, это поможет!

Данные угловой загрузки из службы

Я получаю сообщение об изменении выражения, но загрузка и выполнение в OnInit сработали для меня.

...