sencha touch - 如何在面板的initcomponent中读取多个json对象(ajax的响应)

时间:2011-10-10 15:15:21

标签: ajax json sencha-touch storage iteration

需要读取形成ajax请求的多个json对象。我使用下面给出的代码。它花了太长时间。所以在此代码之前执行其他代码。

var allVisitStore =  new Ext.data.Store({ 
model: 'allVisit',
autoLoad : true,
proxy: {
    type: 'ajax',
    id: 'allvisit_app_localstore',
    url: '/RadMobApp/api',
    extraParams:{          
        action:'test',
        queryName:'GET_ALL_TEST',
        username:'1234',
        password:'1234',
        retFormat:'XML',
        patTicketId: '4098'
        keyValuePair:'yes'
    },
    // the return will be XML, so lets set up a reader
    reader: new Ext.data.XmlReader({
        // records will have an "T4" tag
        record: 'data'
    })
}

});

是否有上述

的替代方法

1 个答案:

答案 0 :(得分:0)

Sencha Touch中的所有Ajax请求,实际上ExtJS都是异步的。 当商店加载

时,您需要做任何您需要做的事情

收听商店的“加载”事件,然后继续处理。

您可以在商店配置中添加一个侦听器,如下所示:

var allVisitStore =  new Ext.data.Store({ 
model: 'allVisit',
autoLoad : true,
proxy: {
    type: 'ajax',
    id: 'allvisit_app_localstore',
    url: '/RadMobApp/api',
    extraParams:{          
        action:'query',
        queryName:'GET_ALL_VISIT',
        username:'superuser',
        password:'superuser',
        retFormat:'XML',
        patTicketId: 'PAT-4098'
        keyValuePair:'yes'
    },
    // the return will be XML, so lets set up a reader
    reader: new Ext.data.XmlReader({
        // records will have an "T4" tag
        record: 'data'
    }),
    listeners : {
        'load' : function(){

            // call code here that should be run when the data has returned

        }
    }
}

或者像这样:

allVisitStore.on('load',function(){
// call code here that should be run when the data has returned

});