Ember.computed.sort似乎不起作用 [英] Ember.computed.sort doesn't seem to work
本文介绍了Ember.computed.sort似乎不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的模板:
{{#each rate in package.ratesSorted}}
{{rate.year}}
{{/each}}
按升序排序,所以我有:
I want the rates to be sorted by ascending year, so I 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 my rate Model looks like 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}
]
});
但是它最终被排序 3,4,1
。为什么?
But it then ends up being sorted 3,4,1
. Why?
推荐答案
这是因为 Ember.computed.sorted
expects -1
和 1
而不是true或false。
It's because Ember.computed.sorted
expects -1
and 1
rather than 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, a better version is:
var Package = DS.Model.extend({
rateSorting: ['year'],
ratesSorted: Ember.computed.sort('rates', 'rateSorting')
});
这篇关于Ember.computed.sort似乎不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文