2015-07-31 3 views
1

Я не могу получить sortProperties для работы с контроллером массива. Я думаю, это потому, что модель, которую контроллер должен сортировать, не является моделью, которую он получает по умолчанию в Ember CLI.Ember CLI Array Controller не сортирует по каждой петле

посты ресурс определен в router.js:

export default Router.map(function() { 
 
    this.resource('posts', function() { 
 
    this.route('index', {path: '/'}); 
 
    this.route('new'); 
 
    this.route('full', {path: '/:id'}); 
 
}); 
 

модель крюка определяется в маршрутов/сообщений/index.js:

export default Ember.Route.extend({ 
 
    model: function() { 
 
    return this.store.find('post'); 
 
    }, 
 
});

Моя модель для одного поста (модели/post.js)

export default DS.Model.extend({ 
 
    title: DS.attr('string'), \t 
 
    category: DS.attr('string'), \t \t 
 
    created_at: DS.attr('date'), \t 
 
    
 
)}

Мой шаблон отображается список сообщений с использованием {{}} #each помощника
(templates/posts/index.hbs):

Внутреннее содержимое каждого помощника содержится в компоненте с именем «blog-list».

{{#each model as |post|}} 
 
    {{blog-list model=post}} 
 
{{/each}}

Список сообщений отображается в порядке.

Я добавил код для сортировки списка по названию собственности (контроллеры/сообщений/index.js):

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

Я не знаю, почему, но заголовок столбца не сортируется.

ответ

1

Вы должны перебрать controller вместо model в шаблоне:

{{#each controller as |post|}} 
    {{blog-list model=post}} 
{{/each}} 

ArrayController осуждается, кстати.

+0

Спасибо, отлично работая сейчас. – AJP

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