2

現時点では、JavaScript のネイティブsort()メソッドを使用して Ember で並べ替えを行っていますが、実際には Ember 独自の並べ替えを使用する必要があることはわかっていますが、残念ながらその使用方法がまったくわかりません。

私のために説明するために人々の時間を無駄にしたくはありませんが (あなたがマゾヒストでない限り)、誰かが EmberJS でモデルのコレクションをソートする方法に関する素晴らしい記事を知っていれば、それは大歓迎です!

現時点では、次のようなものがあります。ここでは、ネイティブ ソートを使用してソートを再度実装しようとしていますが、適切な方法を学びたいのでそこでやめました。

SortOption: Ember.View.extend(
{
    template:   Ember.Handlebars.compile('<li><a href="javascript:void(0);">{{ option }}</a></li>'),
    option:     null,

    click: function()
    {
        var rootView    = this.nearestWithProperty('people');
        var sortBy      = this.get('option');

        var sorted = rootView.get('people').orderBy('formalName');
        rootView.set('people', sorted)
    }
})
4

1 に答える 1

6

このプル リクエストは、SortableMixin に関する更新されたドキュメントを対象としています。

Ember.SortableMixin provides a standard interface for array proxies
to specify a sort order and maintain this sorting when objects are added,
removed, or updated without changing the implicit order of their underlying
content array:
  songs = [ 
   {trackNumber: 4, title: 'Ob-La-Di, Ob-La-Da'},
   {trackNumber: 2, title: 'Back in the U.S.S.R.'},
   {trackNumber: 3, title: 'Glass Onion'},
  ];  

  songsController = Ember.ArrayController.create({
  content: songs,
  sortProperties: ['trackNumber']

 });

 songsController.get('firstObject'); // {trackNumber: 2, title: 'Back in the U.S.S.R.'}
 songsController.addObject({trackNumber: 1, title: 'Dear Prudence'});
 songsController.get('firstObject'); // {trackNumber: 1, title: 'Dear Prudence'}

Sortable Mixin は、0.9.8 リリースの時点で ArrayController に含まれるようになりました (私は信じています)。コントローラーで sortProperties 配列を定義arrangedContentし、ビューでプロパティを使用するだけです。以下はイワンからの説明です。

于 2012-08-24T18:25:11.827 に答える