Ember计算排序不在服务中排序

时间:2016-01-08 20:36:31

标签: arrays sorting ember.js computed-properties

也许我做得不对,但我正在尝试按ID降序排列saidMessages: [], 的数组,但它们仍按升序排列。

sortedSaidMessages: Ember.computed.sort('saidMessages','id:desc'),

然后我有计算

say: function(params) {
    if (ENV.environment === 'development' || ENV.environment === 'staging'){
      var thisMessage = Ember.Object.create(params);
      this._IDify(thisMessage,this.get('saidMessages'));
      this.get('saidMessages').pushObject(thisMessage);
      setTimeout(()=>{
        this._removeMessage(thisMessage,this.get('saidMessages'));
      },6000)
    }
},

当我从一个组件调用一个方法时,它会在主数组中添加一个新对象

{{#each devlog.sortedSaidMessages as |message|}}
    {{devlog-message content=message}}
{{/each}}

在我的模板中,我会像这样显示它们

values

但是当我向数组添加项目时,无论我是同时添加几个,还是错开它们(比如在setTimeout函数中),它们仍然按升序显示(0,1,2,... 。)

1 个答案:

答案 0 :(得分:1)

查看Ember.computed.sort的文档:第二个参数是属性的关键,描述如何排序。这就是你想要的东西:

saidMessages: [],
saidMessagesSorting: ['id:desc'],
sortedSaidMessages: Ember.computed.sort('saidMessages','saidMessagesSorting'),