2014-11-27 3 views
0

У меня вопрос, что мне делать, чтобы сортировка работала в приложении Ember? Я создал простое приложение блога с помощью Ember-клиСортировка моделей массивов в ember-cli

Модель:

export default DS.Model.extend({ 
    title: DS.attr('string'), 
    publishedAt: DS.attr('date'), 
    description: DS.attr('string'), 
    body: DS.attr('string') 
}); 

структура маршрута является:

this.resource('blog', function() { 
     this.route('new'); 
     ... 
}); 

И в блог/индекс У меня есть {{#each blog in model}} цикл для всех данных

Я добавил контроллер блог/индекс

import Ember from 'ember'; 

export default Ember.ArrayController.extend({ 
    sortAscending: true, 
    sortProperties: ['date'] 
}); 

И ничего, кажется, работает ..

ответ

0

Youre сортировки по свойству то не существует на модели sortProperties: ['date']
Вам необходимо отсортировать по модели объекта:

sortAscending: false,  
sortProperties: ['publishedAt'] 
+0

Вы правы, но перед тем, как я попытался изменить его на ['publishedAt'], и все равно ничего не случилось. Возможно, проблема в маршрутах? –

+0

что ты имеешь в виду, ничего не случилось? Ничего вообще не отображается или отображаемая информация не сортировалась? – Craicerjack

+0

был отсортирован по умолчанию от старого до новейшего (я хотел показывать сообщения от самого нового до самого старого) –

2

предыдущий ответ правильный, но я лично предпочитаю сворачивать это в одну строку:

sortProperties: ['publishedAt:desc'] 

Приятная вещь в этом подходе состоит в том, что вы можете добавлять дополнительные массивы в массив, не беспокоясь о восходящем/нисходящем настройках на уровне контроллера.

Смежные вопросы