我正在寻找一个对象的关联 - 例如,我在一个组(对象)页面上,并且该组有很多我在该页面上显示的帖子。我如何对这些帖子进行排序以通过created_at或其他属性来安排它们?
答案 0 :(得分:0)
您可以使用ArrayController
收集Post
个,然后使用内置的sortProperties
和sortAscending
属性。
App.GroupRoute = Ember.Route.extend({
setupController : function(controller,model){
this._super(controller,model);
this.controllerFor('posts').set('content',model.get('posts'));
}
});
App.GroupController = Ember.ObjectController.extend({
needs : ['posts']
});
App.PostsController = Ember.ArrayController.extend({
sortProperties : ['createdAt'],
sortAscending : false
});
通过调用组模板中的render
,您可以访问由主控制器need
编辑的控制器。那么,您的group
模板看起来像这样:
<h2>Group : {{name}}</h2>
{{ render 'posts' }}
然后posts
模板可能是:
<ul>
{{#each post in arrangedContent}}
<li>{{ post.title }}</li>
{{/each}}
</ul>
请注意,它使用arrangedContent
作为集合的名称。您可以在set
上sortProperties
sortAscending
和PostsController
动态更改排序顺序。
这是一个总体思路的JSFiddle(但具有不同的模型名称)。
单击表格中的列标题以查看动态排序。