Использовать компонент внутри mat-таблицы - PullRequest
0 голосов
/ 23 апреля 2019

Итак, вот проблема:

У меня есть циновка с 87 столбцами. Отображаемые данные могут иметь несколько состояний, в зависимости от состояния, данные будут отображаться на разных подэкранах, но все они находятся в одном и том же компоненте, проблема в том, что каждый поднабор данных использует одну и ту же спецификацию таблицы. Таким образом, я получаю шаблон, который дублирует все 87 полей 3 раза (по 1 на статус), а сонар ненавидит это

Я не могу найти способ сделать что-то вроде этого:

 <table mat-table [dataSource]="dataSourceStatus1" class="head-table">
      <app-my-comp [dataSource]="dataSourceStatus1"></app-my-comp>
      <tr mat-header-row *matHeaderRowDef="columnId"></tr>
      <tr mat-row *matRowDef="let row; columns: columnId" class="row-tables"></tr>
 </table>

Где app-my-comp такой компонент, как:

@Component({
    selector: 'app-my-comp',
    templateUrl: './my.html',
    styleUrls: ['./style-my-style.component.scss'],
})

export class MyComponent {

    @Input() dataSource: Status1Data[];

}

И HTML - это вышеупомянутые 87 полей:

 <ng-container matColumnDef="field1">
    <th mat-header-cell *matHeaderCellDef>field 1</th>
    <td mat-cell *matCellDef="let let1">
        {{ myObject.someList.field1 }}
    </td>
</ng-container>

<ng-container matColumnDef="field2">

...

Я получаю следующую ошибку:

Could not find column with id "field1"

Stackblitz:

https://stackblitz.com/edit/angular-ftmcr4?file=app%2Ftable-basic-example.ts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...