Как сгруппировать и упорядочить данные по angularJS - PullRequest
0 голосов
/ 01 февраля 2020

Есть ли способ сгруппировать по следующим данным по "стране" и упорядочить по "номеру", как показано в ожидаемом виде в angularJS (с использованием таблицы, thead, tbody)?

$scope.players = [
  {country:, 'US', name: 'Gene', number: 2},
  {country:, 'CANADA', name: 'George', number: 2},
  {country:, 'US', name: 'Steve', number: 1},
  {country:, 'UK', name: 'Paula', number: 1},
  {country:, 'US', name: 'John', number: 3},
  {country:, 'CANADA', name: 'Joseph', number: 1},
];

ожидаемое представление в angularJS (с использованием таблицы, thead, tbody)

Number  Name

CANADA

1   Joseph
2   George

SRI LANKA

1   Saman

UK

1   Paula

US

1   Steve
2   Gene
3   John

1 Ответ

0 голосов
/ 02 февраля 2020

посмотрите на angular -фильтр для некоторых полезных angularjs фильтров. Группу по фильтру, которую предоставляет эта библиотека, можно использовать здесь.

ваш желаемый html может быть легко достигнут с помощью чего-то подобного

<table>
    <thead>
        <th>Number</th>
        <th>Name</th>
    </thead>
    <tbody>
        <tr ng-repeat-start="(key,value) in players | groupBy:'country'">
            <td colspan="2">
                {{key}}
            </td>
        </tr>
        <tr ng-repeat-end ng-repeat="player in value | orderBy:'number'">
            <td>{{player.number}}</td>
            <td>{{player.name}}</td>

        </tr>

    </tbody>
</table>

Также вы должны удалить случайные запятые из ваших $ scope.players. Это должно выглядеть так

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