从Ember中的模型排序嵌套数组?

lfitzgibbons

所以我在Ember中有一个模型,该模型生成带有三个对象的哈希。对象之一是对象数组,每个对象内都有另一个数组。我需要对这个最里面的数组进行排序,但是这样做很麻烦。

这是我的模特。

App.Person = DS.Model.extend ({
    first_name: DS.attr('string'),
    last_name: DS.attr('string'),
    age: DS.attr('string'),
    gender: DS.attr('string'),
    innerMostArray: DS.hasMany('innerMostObject')
});

App.innerMostObject = DS.Model.extend ({
    person_id: DS.belongsTo('person'),
    attr1: DS.attr('string'),
    attr2: DS.attr('string')
});

这是我的路线

App.NestedArrayRoute = Ember.Route.extend({
    model: function(params) {
        return Ember.RSVP.hash({
            object1: this.store.find('object1', params.object1_id),
            people: this.store.all('person'),
            object3: this.store.all('object3')
        });
    },
    afterModel: function(model, transition) {
        model.people.forEach(function(item, index, enumerable){
            var innerMostArray = item.get('innerMostArray');
            var sortedArray = innerMostArray.sortBy('attr1', 'attr2');
        });
        model.people.update();
    } 
});

我知道我无法正确地做到这一点,但我只是不知道如何对嵌套数组进行排序。我已经看到了数组控制器的示例,但是我不知道如何使用一个来对该嵌套数组进行排序。如果有人可以举一个例子来说明这一点,那将非常有帮助。谢谢。

特里琼

我同意Kalmans的回答,但建议您使用内置方法进行此排序,以免麻烦:

App.Person = DS.Model.extend({
   name: DS.attr('string'),
   fruits: DS.hasMany('fruit', {async: true}),
   fruitSorting: ['title', 'color'],
   sortedFruits: Ember.computed.sort('fruits', 'fruitSorting')
});

我在这里分叉了他的示例:http : //emberjs.jsbin.com/manutu/1/edit? html,js, output

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章