Я хочу поместить значения в массив, как показано ниже, когда я получаю значения из базы данных Firebase
columns: any[];
this.columns = [
{ columnDef: 'FirstName', header: 'First Name', cell: (element: any) => `${element.FirstName}` },
{ columnDef: 'LastName', header: 'Last Name', cell: (element: any) => `${element.LastName}` },
];
Вот что я пробовал до сих пор .........
this.af.list('/datalist', {
query: {
limitToLast: 200,
orderByChild: 'name',
equalTo: 'spiderman',
preserveSnapshot: true
}
}).subscribe(snapshot=>{
if(snapshot!=undefined){
snapshot.forEach(function(childSnapshot) {
this.columns.push( { columnDef: childSnapshot.heroname, header: childSnapshot.herotitle, cell: (element: any) => `${element.heroname}` });
this.displayedColumns = this.columns.map(c => c.columnDef);
return false;
});
}
});
Ошибка с кодом выше
Невозможно прочитать свойство 'столбцы' из неопределенного
Несмотря на то, что я объявил массив столбцов глобально, он не распознает его.
В HTML я хочу использовать вот так ....
<ng-container *ngFor="let column of columns" [cdkColumnDef]="column.columnDef">
<mat-header-cell *cdkHeaderCellDef>{{ column.header }}</mat-header-cell>
<mat-cell *cdkCellDef="let row">{{ column.cell(row) }}</mat-cell>
</ng-container>
Любая подсказка приветствуется. Спасибо.