Ember CLI Array Controller未对每个循环进行排序

时间:2015-07-31 10:04:30

标签: javascript ember.js

我无法从数组控制器获取sortProperties。我认为这是因为控制器需要排序的模型不是它在Ember CLI中默认接收的模型。

router.js 中定义的帖子资源:

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

模型钩子在 routes / posts / index.js

中定义

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

我的单个帖子的模型( models / post.js

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

我的模板使用{{#each}}帮助器显示帖子列表 (的模板/帖/ index.hbs ):

每个帮助程序的内部内容包含在名为“blog-list”的组件中。

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

帖子列表显示正常。

我添加了代码按标题属性( controllers / posts / index.js )对列表进行排序:

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

我不确定原因,但标题栏没有排序。

1 个答案:

答案 0 :(得分:1)

您必须在模板中迭代controller而不是model

{{#each controller as |post|}}
  {{blog-list model=post}}
{{/each}}
顺便说一下,

ArrayController已被弃用。