Я пытаюсь загрузить данные в ag-grid, когда компонент загружается. Объединение примера на ag-grid github и ответ на этот вопрос У меня есть этот ngOnInit для моего компонента:
ngOnInit(): void {
this.promisesService.getPromises()
.subscribe((s: Promise[]) => {
console.log('got response:', s);
this.gridOptions = {
enableSorting: true,
rowData: this.createRowData(),
columnDefs: this.createColumnDefs(),
onGridReady: () => {
this.gridOptions.api.sizeColumnsToFit();
console.log('ag-grid ready');
}
};
console.log('options set:', this.gridOptions);
});
}
Сетка застревает на «Загрузка ...» без сообщений об ошибках. GridOptions настроен правильно, а его rowData содержит все данные, которые я ожидал увидеть. Однако onGridReady никогда не запускается.
Если я перенесу настройку параметров за пределы подписки, она будет работать нормально:
ngOnInit(): void {
this.promisesService.getPromises()
.subscribe((s: Promise[]) => {
console.log('got response:', s);
console.log('options set:', this.gridOptions);
});
this.gridOptions = {
enableSorting: true,
rowData: this.createRowData(),
columnDefs: this.createColumnDefs(),
onGridReady: () => {
this.gridOptions.api.sizeColumnsToFit();
console.log('ag-grid ready');
}
};
}
В шаблоне я устанавливаю только параметры:
<ag-grid-ng2 #agGrid style="width: 100%; height: 200px;" class="ag-fresh" [gridOptions]="gridOptions"></ag-grid-ng2>
Я пробовал переместить код в конструктор и установить rowData в шаблоне, но это не помогло.
Что мне не хватает?
Спасибо