添加字典到数组throws typeerror _a是未定义的

时间:2018-01-24 22:29:33

标签: angular angular-material

我在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行。不知道如何继续。

0 个答案:

没有答案