Ember.computed.sort似乎不起作用 [英] Ember.computed.sort doesn't seem to work

查看:176
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆