尚未设置Sencha Touch ListPaging TotalCount

时间:2014-06-18 17:13:34

标签: sencha-touch

使用Sencha Touch 2.3.1a。我有一个使用ListPaging的列表:

{
    xtype: 'list',
    itemId: 'passDownList',
    store: 'PassDownEntrysStore',
    plugins: 
    [
        {
            xclass: 'Ext.plugin.ListPaging',
            autoPaging: true
        }
    ],
    grouped : true,
    itemTpl: '<div class="list-item-title">{time}</div><div class="list-item-narrative">{firstName} {lastName}</div>',
    selectedCls: 'list-item-module',
    itemCls: 'list-item-custom',
    onItemDisclosure: true,
}   

使用以下商店代理设置:

proxy: 
{
    type: 'ajax',
    actionMethods: 
    {
        read   : 'POST'
    },
    extraParams :
    {
    },
    url: App.config.Config.baseURL() + 'subscriptions/',
    reader: 
    {
        type: 'json',
        totalProperty: 'totalCount',
        //totalCount: 'totalCount',
        //total: 'totalCount',
        rootProperty: 'Data.items',
        successProperty: 'success'
    }
}

这是从服务器返回的数据:

Service return data

我尝试了所有三种读卡器设置:

totalProperty: 'totalCount',
//totalCount: 'totalCount',
//total: 'totalCount',

和totalCount始终为“未定义”。我试图在商店上添加一个加载事件来更新总数:

load: function(records, successful, operation, eOpts)
{
    var data = JSON.parse(eOpts._response.responseText);

    this.setTotalCount(data.Data.totalCount);
    console.log('load call total: ' + this.getTotalCount());
}
设置它的

。但是,当我拉出列表以显示更多条目并检查加载事件中的总计数时,它再次被重置为“未定义”。
我希望这个工作的原因是显示“没有更多记录”

更新:2014年6月18日: 把它设置在负载上对我有用:

load: function(records, successful, operation, eOpts)
{
var data = JSON.parse(eOpts._response.responseText);

this.setTotalCount(data.Data.totalCount);
console.log('load call total: ' + this.getTotalCount());
}

这就是为什么它一直设定总数。我仍然不明白为什么它回来未定义但是缺少某些东西/ bug。但是现在这解决了我的分页问题

1 个答案:

答案 0 :(得分:0)

实际上,在阅读器配置中设置totalProperty: 'count'对我有用,同时与REST API进行交互,但您的更新也在起作用。

代理设置示例(顺便说一句,它不是在商店配置中,而是在模型中)

    proxy: {
        type: 'rest',
        url : 'https://*******.info/api/v3/posts/',
        withCredentials: false,
        useDefaultXhrHeader: false,
        reader : {
            type : 'json',
            rootProperty : 'results',
            totalProperty : 'count'

        }
        //format  :'json'
    }