我在Angular 5中的第一个Angular应用程序。
我正在尝试为素材表创建数据源。这是创建数据源的代码:
getDrinksDataSource(): MatTableDataSource<{}> {
const drinkList = [];
for (let entry of this.settingsService.drinks) {
console.log('Adding:' + entry);
const drinkEntry = {drink: entry};
drinkList.push(drinkEntry); //<-Line 24, not 60 characters long.
}
const dataSource = new MatTableDataSource();
dataSource.data = drinkList;
return dataSource;
}
this.settingsService.drinks返回一个简单字符串数组,由显示字符串的console.log确认。
问题是我在控制台中收到以下错误:
TypeError: _a is undefined
Stack trace:
DrinksComponent.prototype.getDrinksDataSource@webpack-internal:///../../../../../src/app/drinks/drinks.component.ts:24:60
View_DrinksComponent_0/<@ng:///AppModule/DrinksComponent.ngfactory.js:66:21
debugUpdateDirectives@webpack-internal:///../../../core/esm5/core.js:14855:12
checkAndUpdateView@webpack-internal:///../../../core/esm5/core.js:14002:5
callViewAction@webpack-internal:///../../../core/esm5/core.js:14353:21
execComponentViewsAction@webpack-internal:///../../../core/esm5/core.js:14285:13
当然,这是在我的html模板调用的组件中。
这是我的html模板:
<h3>Drinks</h3>
<mat-table #table [dataSource]="getDrinksDataSource()" matSort>
<!-- Drinks Column -->
<ng-container matColumnDef="drinks">
<mat-header-cell *matHeaderCellDef mat-sort-header> Drinks </mat-header-cell>
<mat-cell *matCellDef="let element"> {{element.drink}} </mat-cell>
</ng-container>
<!-- Row definition -->
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
</mat-table>
我在代码中突出显示第24行。不知道如何继续。