无法为排序要求设置数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法为排序要求设置数据相关的知识,希望对你有一定的参考价值。
我试图通过扩展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') );
}
}
});
答案
在你的代码片段中,你通过扩展class
定义了一个名为dataFilter
的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
自然地定义在扩展Ember.Object
的类的实例中。
以上是关于无法为排序要求设置数据的主要内容,如果未能解决你的问题,请参考以下文章