Вот моя проблема.Многие примеры использования 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'
Я застрял в этой точке на том, как согласовать эти требования.Любая помощь?