Ember - Сортировать модель после findAll - PullRequest
0 голосов
/ 27 ноября 2018

Я использую Emberfire в своем приложении, и я пытаюсь findAll статистика, а затем сортировать эту модель по ключу, как в следующем примере.Но когда я сортирую таким образом, я теряю способность видеть обновления в реальном времени в моем шаблоне, и мне приходится перезагружать страницу, чтобы увидеть новые / обновленные данные в представлении.

 model() {
    return this.store
      .findAll('stats', {
        reload: true,
        backgroundReload: true
      })
      .then(stats => stats.sortBy('date'));
  }

1 Ответ

0 голосов
/ 27 ноября 2018

Вы должны определить вычисляемое свойство на вашем контроллере или компоненте, который возвращает отсортированную статистику.Не сортируйте свои данные на крюке модели маршрута.Просто верни обещание найти все.

Например:

//controller.js or component.js 
sortedStats: computed('model.@each.date', function() {
  return this.get('model').sortBy('date');
})

Кроме того, ember предлагает макрос сортировки :

import { sort } from '@ember/object/computed';

Используя его, вы можете решить свои требования более элегантно:

// ...
this.init() {
  this._super(...arguments);
  this.set('sortDefinition', ['date:asc']);
}
sortedStats: sort('model.@each.date', 'sortDefinition')
// ...
...