Как скрыть столбец в таблице угловых материалов, если весь этот столбец является нулевым в источнике данных? - PullRequest
0 голосов
/ 23 мая 2019

У меня есть таблица угловых материалов со столбцами: столбцы таблицы: строка [] = ["mbrID", "E", "B", "HasAccess", "Att", "select"];

Информация, которую я получаю, может быть двух типов. Тип A имеет все заполненные столбцы. Для типа B столбцы E и B всегда будут нулевыми. Из ответа, полученного от службы, которой я заполняю источник данных, я не могу выяснить, относится ли информация к типу A или типу B. Как я могу проверить, является ли значение этих конкретных столбцов в источнике данных нулевым, и скрыть их на дисплее?

Это мой угловой код для заполнения источника данных.

ngOnInit() {
    this.Service.ObservableName.subscribe(
      (response: Recipient[]) => {
        this.RcptData = response;
        console.log(this.RcptData);
        this.tabledata = new MatTableDataSource(response);
      }
    )
  }

Интерфейс получателя выглядит так:

export interface Recipient {
    mbrId: string,
    E: string,
    B: string,
    hasAccess: string,
    att: string[]
}

Это то, что у меня есть в моем HTML-коде для таблицы. Я добавил только для двух столбцов, но это похоже на остальные. :

<table mat-table matSort [dataSource]='RcptData' class="mat-elevation-z8">
  <ng-container matColumnDef="mbrID">
    <th mat-header-cell *matHeaderCellDef>Member ID</th>
    <td mat-cell *matCellDef="let member"> {{member.mbrId}}</td>
  </ng-container>
  <ng-container matColumnDef="E">
    <th mat-header-cell *matHeaderCellDef>E</th>
    <td mat-cell *matCellDef="let member"> {{member.E}}</td>
  </ng-container>
  <tr mat-header-row *matHeaderRowDef="tablecolumns"></tr>
  <tr mat-row *matRowDef="let row;columns: tablecolumns;"></tr>

</table>

Прямо сейчас столбцы E и B будут видны независимо от типа данных, но я хочу их скрыть. Так как я не получаю тип данных из бэкэнда, я не могу понять, как это сделать. Значения столбцов E и B всегда будут нулевыми (весь столбец) для типа B. Могу ли я использовать это как-то, чтобы скрыть столбцы?

1 Ответ

0 голосов
/ 23 мая 2019

Можете ли вы просто использовать * ngIf в этом случае что-то подобное

<ng-container matColumnDef="E" *ngIf="member">
    <th mat-header-cell *matHeaderCellDef>E</th>
    <td mat-cell *matCellDef="let member"> {{member.E}}</td>
</ng-container>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...