jeudi 26 février 2015

Sorting on numerical model attribute in Ember

I've got a very basic Price model that looks like this:



App.Price = DS.Model.extend({
value: DS.attr()
});

App.Price.reopenClass({
FIXTURES: [
{ id: 1, value: 29.99 },
{ id: 2, value: 39.99 },
{ id: 3, value: 49.99 },
{ id: 4, value: 55.99 }
]
});


Here's the route that's using this model:



App.PricingRoute = Ember.Route.extend({
model: function(){
return this.store.find('price');
}
});


In the controller, I set the sorting to be based on the value attribute:



App.PricingController = Ember.ArrayController.extend({
sortProperties: ['value'],
sortAscending: true
});


Then my template (in Jade) where I want them to be display in sorted order:



{{#each price in this}}
li.price-levels__value {{price.value}}
.price-levels__remove("{{action 'delete' price.id}}")
{{/each}}


Problem is they're not sorted. Interesting fact is that if I change the type of the value attribute to strings, the sorting DOES work.


eg.



{ id: 1, value: '29.99' }
{ id: 2, value: '39.99' }
etc.


So how do I get the sorting to work on a numerical model attribute?





Aucun commentaire:

Enregistrer un commentaire