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'}

从 0.9.8 版本开始,Sortable Mixin 现在包含在 ArrayController 中(我相信)。您需要做的就是在控制器上定义一个 sortProperties 数组并arrangedContent在视图中使用该属性。这是伊万的解释。

于 2012-08-24T18:25:11.827 回答