我有一个这样的模板:
{{#each rate in package.ratesSorted}}
{{rate.year}}
{{/each}}
我希望费率按升序年份排序,所以我有:
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]}
]
});
我的费率模型看起来像这样:
var Rate = DS.Model.extend({
year: DS.attr('number'),
});
Rate.reopenClass({
FIXTURES: [
{id: 4, year: 4},
{id: 1, year: 1},
{id: 3, year: 3}
]
});
但它最终会被排序3,4,1
。为什么呢?
答案 0 :(得分:0)
这是因为Ember.computed.sorted
期望-1
和1
而不是真或假。
var Package = DS.Model.extend({
ratesSorted: Ember.computed.sort('rates', (a, b) => a.get('year') < b.get('year') ? -1 : 1)
});
作品。使用排序定义,更好的版本是:
var Package = DS.Model.extend({
rateSorting: ['year'],
ratesSorted: Ember.computed.sort('rates', 'rateSorting')
});