Emberjs сортирует ассоциацию hasMany как вычисляемое свойство

У меня есть две модели, папка и файлы. В папке много файлов. Если я скажу folder.get('files'), я получу все файлы, связанные с этой папкой, упорядоченные по идентификатору. Я хотел бы, чтобы массив файлов был упорядочен чем-то другим, кроме идентификатора; скажем, createDate. Если возможно, я не хочу создавать вычисляемое свойство с именем, отличным от files.

Любая помощь будет принята с благодарностью?


person user2517182    schedule 07.06.2015    source источник
comment
Почему вы не определяете files как вычисляемое свойство, которое зависит от некоторого значения фильтра, и когда значение фильтра не установлено, оно упорядочивается по идентификатору по умолчанию.   -  person kunerd    schedule 07.06.2015
comment
потому что я не знаю, как это сделать. :-)   -  person user2517182    schedule 07.06.2015
comment
Это поможет показать, что вы пробовали до сих пор, и, возможно, опубликовать соответствующий код.   -  person kunerd    schedule 07.06.2015


Ответы (1)


Как упоминалось в моем комментарии, вам нужно создать вычисляемое свойство files в вашем контроллере, которое содержит вашу логику сортировки.

files: function() {
  var filter = this.get('filter');
  return this.get('model').sortBy(filter);
}.property('filter')

Вот JSBin: http://emberjs.jsbin.com/pojaxikayu/3/edit, демонстрируя, как это работает. Пример очень простой и должен быть расширен в соответствии с вашими конкретными потребностями.

Вы также можете использовать Ember.SortableMixin в своем контроллере. Вот пример выше с использованием миксина: http://emberjs.jsbin.com/hebisorexo/2/edit

person kunerd    schedule 07.06.2015