ember.js - Ember.computed.sort doesn't seem to work -


i have template so:

{{#each rate in package.ratessorted}}   {{rate.year}} {{/each}} 

i want rates sorted ascending year, have:

 var package = ds.model.extend({   rates: ds.hasmany('rate'),   ratessorted: ember.computed.sort('rates', (a, b) => {     return a.get('year') > b.get('year');   }) });  package.reopenclass({   fixtures: [     {id: 1, rates: [1, 3, 4]}   ] }); 

and rate model looks this:

var rate = ds.model.extend({   year: ds.attr('number'), });  rate.reopenclass({   fixtures: [     {id: 4, year: 4},     {id: 1, year: 1},     {id: 3, year: 3}   ] }); 

but ends being sorted 3,4,1. why?

it's because ember.computed.sorted expects -1 , 1 rather true or false.

var package = ds.model.extend({   ratessorted: ember.computed.sort('rates', (a, b) => a.get('year') < b.get('year') ? -1 : 1) }); 

works. using sorting definitions, better version is:

var package = ds.model.extend({   ratesorting: ['year'],   ratessorted: ember.computed.sort('rates', 'ratesorting') }); 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -