Аналогично этот связанный вопрос , Я хочу сгруппировать массив объектов , e.g., by team name
[
{name: 'Gene', team: 'team alpha'},
{name: 'George', team: 'team beta'},
{name: 'Steve', team: 'team gamma'},
{name: 'Paula', team: 'team beta'},
{name: 'Scruath of the 5th sector', team: 'team gamma'}
];
К сожалению, принятый ответ с использованием ng-repeat
с фильтром groupBy
, похоже, не работает в панели расширения Angular Material, что я и пытаюсь сделать:
Мне нужно несколько панелей расширения, по одной на команду, которые при расширении показывают участвующих игроков.
Я пытался
<mat-expansion-panel ng-repeat="(key, value) in players | groupBy: 'team'">
<mat-expansion-panel-header>
<mat-panel-title>{{ key }}</mat-panel-title>
</mat-expansion-panel-header>
<li ng-repeat="player in value">
{{player.name}}
</li>
</mat-expansion-panel>
Однако, ng-repeat
не разрешен внутри mat-expansion-panel
. *ngFor
разрешено, но я не знаю, как использовать его с фильтром groupBy
. *ngFor="let player in players | groupBy: 'team'"
выдает ошибку, и я не могу найти документацию.