我试图通过扩展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') );
}
}
});
答案 0 :(得分:1)
在您的代码段中,您通过扩展class
定义了名为dataFilter
的{{1}};但是你没有从中创建任何实例。运行代码Ember.Object
会自然引发错误,指示dataFilter.set('cardList', this.get('combineArray') );
。 dataFilter.set is not a function
不是实例。如果您将dataFilter
声明为
dataFilter
然后这些线不会抛出错误;因为let dataFilter = Ember.Object.extend({
cardList:null,
sortByAmountSpent:Ember.computed.sort('name', 'cardList'),
sortByDateOfPurchase:Ember.computed.sort('age', 'cardList')
}).create();
将是定义的类的实例,dataFilter
自然地在扩展set
的类的实例中定义。