【问题标题】:Ember computed sort not sorting in serviceEmber 计算排序不在服务中排序
【发布时间】:2016-04-13 15:26:07
【问题描述】:

也许我做得不对,但我正在尝试按 ID 以降序对 Ember.Object 的数组进行排序,但它们仍然以升序排列。

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}}

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

【问题讨论】:

    标签: arrays sorting ember.js computed-properties


    【解决方案1】:

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

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

    【讨论】:

    • 啊,好吧,我错过了阅读它是如何解释的,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 2013-01-21
    相关资源
    最近更新 更多