Im using this filter https://github.com/a8m/angular-filter#groupby to order my data like so, and it works great:
<div ng-repeat="(key, value) in tags.tags.objects | groupBy:'category.name' ">
Now Im trying to keep the order of that groups, by category.order.
Is this possible?
I tried piping it like so:
<div ng-repeat="(key, value) in tags.tags.objects | groupBy:'category.name' | orderBy:'category.order' ">
But it does not make any difference
orderBy
filter not work with objects in ngRepeat
.
so what you can do, it's something like that:
<!-- note: toArray filter also attaches a new property $key
to the value containing the original key that was used in the object -->
<div ng-repeat="tags in tagsList | groupBy:'prop' | toArray:true | orderBy:'$key'">
Group name: {{ tags.$key }}
<p ng-repeat="tag in tags | orderBy:'prop'">
{{ tag.name }}
</p>
</div>
see: toArray filter
You need to use group by and order by in this fashion:
<div ng-repeat="(key, value) in tags.tags.objects | groupBy:'category.name' | orderBy:['category.name','category.order'] ">