Reputation: 15299
I am trying to sort my datas by extending the Ember
object. But getting error as : TypeError: dataFilter.set is not a function
any one please correct me or show me the correct way to sort?
I am trying to keep the separate object for sorting or filter purposes.
here is my code :
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') );
}
}
});
Upvotes: 0
Views: 28
Reputation: 3368
In your code snippet, you have defined a class
named dataFilter
via extending Ember.Object
; however you did not create any instance from it. Running the code dataFilter.set('cardList', this.get('combineArray') );
naturally throws an error indicating dataFilter.set is not a function
. dataFilter
is not an instance. If you declare dataFilter
as
let dataFilter = Ember.Object.extend({
cardList:null,
sortByAmountSpent:Ember.computed.sort('name', 'cardList'),
sortByDateOfPurchase:Ember.computed.sort('age', 'cardList')
}).create();
then those lines will not be throwing errors; because dataFilter
will be an instance of the class defined and set
is naturally defined in an instance of a class extending Ember.Object
.
Upvotes: 1