0

オブジェクトの関連付けを並べ替えたいと考えています。たとえば、グループ (オブジェクト) ページにいて、グループにはそのページに表示される多くの投稿があります。これらの投稿を、created_at またはその他のプロパティで並べ替えるにはどうすればよいですか?

4

1 に答える 1

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コレクションの名前として使用していることに注意してください。settingsortPropertiessortAscendingon を使用すると、並べ替え順序を動的に変更できますPostsController

一般的なアイデアの JSFiddle を次に示します (ただし、モデル名は異なります)。

http://jsfiddle.net/YeKCf/

表の列見出しをクリックして、動的ソートの動作を確認します。

于 2013-09-17T03:13:29.063 に答える