无法设置排序要求的数据

Not able to set the data for sorting requirement

我正在尝试通过扩展 Ember 对象来对我的数据进行排序。但是出现错误:TypeError: dataFilter.set is not a function 任何人请纠正我或告诉我正确的排序方式?

我试图保留单独的对象以用于排序或过滤目的。

这是我的代码:

import Ember from 'ember';

let dataFilter = Ember.Object.extend({
    cardList:null,
    sortByAmountSpent:Ember.computed.sort('name', 'cardList'),
    sortByDateOfPurchase:Ember.computed.sort('age', 'cardList')
})

export default Ember.Controller.extend({
    combineArray:Ember.computed(function(){
        return [
                {"name":"name1","age":"age1"},
                {"name":"name2","age":"age2"},
                {"name":"name0","age":"age3"}
            ];
    }),
    actions:{
        sortByDateOfPurchase:function(){
            dataFilter.set('cardList', this.get('combineArray') );
        },
        sortByAmountSpent:function(){
            dataFilter.set('cardList', this.get('combineArray') );
        }
    }
});

在您的代码片段中,您通过扩展 Ember.Object 定义了一个名为 dataFilterclass;但是您没有从中创建任何实例。 运行 代码 dataFilter.set('cardList', this.get('combineArray') ); 自然会抛出错误指示 dataFilter.set is not a functiondataFilter 不是实例。如果您将 dataFilter 声明为

let dataFilter = Ember.Object.extend({
    cardList:null,
    sortByAmountSpent:Ember.computed.sort('name', 'cardList'),
    sortByDateOfPurchase:Ember.computed.sort('age', 'cardList')
}).create();

那么这些行就不会抛出错误;因为 dataFilter 将是 class 定义的实例,而 set 自然定义在扩展 Ember.Object.

的 class 实例中