0.1.0 • Published 3 years ago
ember-group-by v0.1.0
ember-group-by
ember-group-by provides a computed property macro for grouping objects by a given property.
Installation
ember install ember-group-by
Usage
import Controller from '@ember/controller';
import groupBy from 'ember-group-by';
export default class IndexController extends Controller {
@groupBy('model', 'color')
carsByColor;
}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:
<h1>Cars grouped by color</h1>
{{#each this.carsByColor as |group|}}
<h3>Cars that have {{group.property}} {{group.value}}</h3>
<ul>
{{#each group.items as |car|}}
<li>{{car.name}}</li>
{{/each}}
</ul>
{{/each}}There is also an example in test/dummy.
Running Tests
npm test(Runsember try:eachto test your addon against multiple Ember versions)ember testember test --server
For more information on using ember-cli, visit https://ember-cli.com/.