Используя angular.filter, я использую groupBy и length, чтобы подсчитать количество записей, зарегистрированных пользователем emailId
<div ng-repeat="(key, value) in leaderboard | groupBy: 'emailId'">
<h3>{{ key }} {{ filteredList.length}}</h3>
<li ng-repeat="leaderboard in value | filter: emailId as filteredList"></li>
</div>
Все это отлично работает, предоставляя мне список идентификаторов электронной почты, количество записей для каждого идентификатора электронной почты и записи, перечисленные ниже.
Что я пытаюсь сделать, так это упорядочить данные по количеству записей для каждого emailId (другими словами, упорядочить данные по значению, возвращаемому {{filterList.length}}).
Я попытался добавить orderBy в ng-repeat, как показано ниже.
<div ng-repeat="(key, value) in leaderboard | groupBy: 'emailId' | orderBy: filtered.length">
<h3>{{ key }} {{ filteredList.length}}</h3>
<li ng-repeat="leaderboard in value | filter: emailId as filteredList"></li>
</div>
но это не имеет никакого значения для порядка перечисления элементов. Я искал существующий ответ, но все orderBy, не работающие с groupBy, похоже, относятся к упорядочению по элементу, содержащемуся в значении, а не длине фильтра.