对ember数据进行排序

时间:2015-04-09 11:10:27

标签: sorting ember.js ember-data

我有一个名为variableDataPackages的模型,其结构如下:

TM.VariableDataPackage = DS.Model.extend({ 
    name: DS.attr(),
    number: DS.attr(),
    variableData: DS.attr(),  
    vds:DS.attr(), 
    asset_id:DS.attr(),
    vdp_id:DS.attr(), 
    type: DS.attr(),
    description: DS.attr(), 
    vdpackage_id:function(){
        if((this.get("type.name") != "d")&&(this.get("type.name") != "u")){            
            return this.get("type.name")  
        } else {
            return this.get("type.name") + this.get("number");                
        }
    }.property("type","number")   
})

显示值是计算属性,并且经常更新/删除/创建此模型的商店中包含的记录集。

我希望能够根据vdpackage_id对记录进行排序。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用控制器上的Ember.SortableMixin(示例可以在guides中找到)。这将使您能够对不同的键进行排序,并使其依赖于用户输入。

您可以在代码中的任何位置创建Ember.ArrayProxy。模型钩子的一个例子(未经测试,只是为了表明这个想法)将是:

 model: function () {
  return Ember.ArrayProxy.extend({
            arrangedContent: Ember.computed.sort('content', 'props'),
            props: ['bar:asc']
         }).create({
            content: this.store.all('foo')});
  });
}