Вот мой фрагмент кода:
В машинописном тексте:
isDataSearch = false;
getDatacollectionByID() {
const params = {
id: <some random ID>,
};
this.metaData = this.dataService.getDatacollectionByID(params)
.pipe(
pluck('level1', 'level2', 'level3'),
tap(() => this.isDataSearch = true),
map(metaData => [metaData]), // to be used as an array for ag grid
)
}
В шаблоне HTML:
<ag-grid-angular
*ngIf="isDataSearch"
[gridOptions]="dataCollectionConfig"
[rowData]="metaData | async"
[modules]="modules"
class="ag-theme-balham data-collection-grid"
>
</ag-grid-angular>
Я пытаюсь показать аг-сетку только тогда, когда данные из наблюдаемой последовательности готовы. Сначала я извлекаю данные, которые глубоко вложены, а затем использую оператор tap
для отмены логической привязки к *ngIf
.
Я предполагаю, что это можно исправить с помощью метода подписки, но я хочу избежать этого, потому что я использую асинхронный канал напрямую в шаблоне.