无法为排序要求设置数据

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定义了一个名为dataFilterEmber.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的类的实例中。

以上是关于无法为排序要求设置数据的主要内容,如果未能解决你的问题,请参考以下文章

onDetach()不要求从一个片段移动到另一个片段

片段无法转换为上下文

Android Place自动填充片段:无法设置文字

Realm和RecyclerView项目排序和自动ViewPager片段通信

无法在对话框片段中的文本视图上设置文本

YouTube API v3 over HTTP POST:上传视频时无法设置片段(标题最终为“未知”)