【问题标题】:How to show error from API below Angular Material Table如何在 Angular 材料表下方显示来自 API 的错误
【发布时间】:2020-03-22 12:28:08
【问题描述】:

我面临以下问题。

我想展示适用于整个表格的 API 错误。就我而言,我想显示表没有行的错误。我可以使用 mat-error 显示错误,但是当我填充它时,错误并没有隐藏。我希望在库存控制中显示和隐藏错误(例如:mat-input)。

在我的 html 代码下方。

<mat-form-field color="accent" class="col-lg-4 col-xs-12 col-sm-12">
  <input matInput name="name" ngModel #name="ngModel" placeholder="Name">
  <mat-error *ngIf="name.invalid">{{name.errors.api}}</mat-error>
</mat-form-field>
<input type="hidden" name="converters" [ngModel]="converterItems.data" #converters="ngModel">
<table mat-table [dataSource]="converterItems" name="converters">
  <ng-container matColumnDef="select">
    <th mat-header-cell *matHeaderCellDef>
    </th>
    <td mat-cell *matCellDef="let row">
      <mat-checkbox (change)="$event ? selection.toggle(row) : null" [checked]="selection.isSelected(row)">
      </mat-checkbox>
    </td>
  </ng-container>
  <ng-container matColumnDef="key">
    <th mat-header-cell *matHeaderCellDef> Key </th>
    <td mat-cell *matCellDef="let element"> {{element.key}} </td>
  </ng-container>
  <ng-container matColumnDef="typeName">
    <th mat-header-cell *matHeaderCellDef> Type name </th>
    <td mat-cell *matCellDef="let element"> {{element.typeName}} </td>
  </ng-container>
  <tr mat-header-row *matHeaderRowDef="displayedColumnsConverters"></tr>
  <tr [@rowsAnimation]="" mat-row *matRowDef="let row; columns: displayedColumnsConverters;" (click)="select(row)"
      [ngClass]="{ 'selected': row === selectedRow }"></tr>
</table>
<mat-error *ngIf="converters.invalid" class="errorTextSize">{{converters.errors.api}}</mat-error>

提前感谢您的帮助。

【问题讨论】:

    标签: angular angular-material mat-table material-table angular-material-table


    【解决方案1】:

    你可以试试下面的代码:

    this.appService.getService().subcribe(result => {
        // Do something when the service returns successfully
    },
    error => {
        // Do something when the service returns with an error like below:
        this.converters.invalid=true;
    }
    
    

    【讨论】:

    • 您好,感谢您的回复。然而它不会工作。如果我不发送就填表怎么办?转换器仍将处于无效状态。我可以通过检查何时向表中添加内容来修复它。然而,这是一个非常肮脏的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2018-10-29
    • 2018-01-07
    • 2021-08-19
    • 2021-02-08
    相关资源
    最近更新 更多