Ember.js中的SortBy无法处理新创建的项目

时间:2015-07-06 11:12:47

标签: javascript ember.js emblem.js

我在这样的日期(时间)属性上应用了sortBy,

cars = @store.all('car')
cars.filter (car) =>
   if car.get('name') == undefined
      @store.find('car', car.get('id')).then ->
      console.log('record found')
   else
      cars

cars.sortBy('messageAt','name').reverse()

当我重新加载页面时它确实有效,但是一旦我在Ember数据中收到新消息,它就会出现在消息中但在底部,这意味着排序不起作用。

1 个答案:

答案 0 :(得分:1)

我得到了同样的错误。据我所知,问题出在messageAt属性中,它具有日期类型。在新版本的emberData中,按日期排序是一个小错误。我通过添加具有整数类型的新属性来修复它,该属性正在被完美地排序。这是代码

lastMessageTime: DS.attr('date'),
lastMessageTimeInMilliseconds: function () {
    var lastMessageTime = this.get('lastMessageTime');

    if (typeof lastMessageTime === 'string') {
      return (new Date(lastMessageTime)).getTime();
    } else {
      return lastMessageTime.getTime();
    }

}.property('lastMessageTime'),