This addon is supplemental to the already existing array computed macros existing in Ember.js
Takes all values of valueProperty
from listProperty
and then picks the maximum value from that.
Example:
var ContactList = Ember.Component.extend({
highestAge: maxBy('people', 'age')
});
const myContactList = ContactList.create({
people: [
{ first: 'Tom', last: 'Dale', age: 21 },
{ first: 'Yehuda', last: 'Katz', age: 42 }
]
}).
myContactList.get('highestAge') // returns 42
See maxBy
, except it takes the minimum value instead of the maximum.
Takes a listProperty
and returns that list sorted by the sortProperties
.
Append :desc
to the sort property to sort in reverse order for that property.
import Ember from 'ember';
import { map } from 'ember-array-computed-macros';
export default Ember.Component.extend({
names: [
{ first: 'Tom', last: 'Dale', age: 21 },
{ first: 'Yehuda', last: 'Katz', age: 42 }
],
oderedNames: orderBy('names', 'last', 'first'. 'age:desc')
});
Pushes all items in listProperty
that have the same value at valueProperty
into an array.
var ContactList = Ember.Component.extend({
groupedByAge: groupBy('people', 'age')
});
const myContactList = ContactList.create({
people: [
{ first: 'Tom', last: 'Dale', age: 21 },
{ first: 'Yehuda', last: 'Katz', age: 42 },
{ first: 'Robert', last: 'Jackson', age: 42 },
{ first: 'Stefan', last: 'Penner', age 33 }
]
}).
myContactList.get('groupedByAge') // returns:
//[
// [
// { first: 'Tom', last: 'Dale', age: 21 }
// ],
// [
// { first: 'Yehuda', last: 'Katz', age: 42 },
// { first: 'Robert', last: 'Jackson', age: 42 }
// ],
// [
// { first: 'Stefan', last: 'Penner', age 33 }
// ]
//]
Takes all values of valueProperty
from listProperty
and then sums those values.
Example:
var ContactList = Ember.Component.extend({
collectiveAge: sumBy('people', 'age')
});
const myContactList = ContactList.create({
people: [
{ first: 'Tom', last: 'Dale', age: 21 },
{ first: 'Yehuda', last: 'Katz', age: 42 }
]
}).
myContactList.get('collectiveAge') // returns 53
Reverses the array at listProperty
with Array.prototype.reverse
.
Takes all values of valueProperty
from listProperty
and then checks if all of those values are truthy.
Takes all values of valueProperty
from listProperty
and then checks if any of those values are truthy.
The addon re-exports all array computed macros from Ember.js for convenience.
- map
- mapBy
- filter
- filterBy
- min
- max
- sum
- sort
import Ember from 'ember';
import { map } from 'ember-array-computed-macros/decorators';
export default Ember.Component.extend({
names: [
{ first: 'Tom', last: 'Dale' },
{ first: 'Yehuda', last: 'Katz' }
],
@mapBy('names', 'first')
firstNames
});
git clone
this repositorynpm install
bower install
ember server
- Visit your app at http://localhost:4200.
ember test
ember test --server
ember build
For more information on using ember-cli, visit http://www.ember-cli.com/.