[NOTE: this project is now out of date]
ember-group-by provides a computed property macro for grouping objects by a given property.
ember install ember-group-by
import Ember from 'ember';
import groupBy from 'ember-group-by';
export default Ember.Controller.extend({
carsByColor: groupBy('model', 'color')
});This will return an array of POJOs with the following properties:
[
{ property: 'color', value: 'red', items: [car1, car2] },
{ property: 'color', value: 'blue', items: [car3, car4] },
{ property: 'color', value: 'green', items: [car5] }
]Each group object will have the following properties:
propertyThe name of the property that you grouped the items byvalueThe value for the property that you grouped the items byitemsAll of the objects with the matching value for that property
You can then use this in your templates to do cool things like:
There is also an example in test/dummy.