1

我有一个 sencha 触摸代码,它使用Ext.Ajax.request. 在success功能上,我希望将响应显示在列表中或将其存储在商店中。

请帮助我如何做到这一点。下面是我的代码。

  var View = function() {
        Ext.getBody().mask('Loading...', 'x-mask-loading', false);
        Ext.Ajax.request({
            url: 'URL',
            method: 'GET',
            success: function(response, opts) 
            {
                    var obj = Ext.util.JSON.decode(response.responseText);
                    Ext.getCmp('content').update(response.responseText);
            }
        });
    };
4

1 回答 1

0

创建一个带有 store 属性的 Ext.List,

myStore = new Ext.data.Store({
        model: Ext.regModel('', {

        fields: [
            { name: 'id', type: 'int' },
            { name: 'name', type: 'string'},
                            { name: 'age', type: 'string'}

        ]

       })
    });

myList = new Ext.List({
        store: myStore,
        itemTpl: '<div>{name}</div>' +'<div>{age}</div>'

    });

然后用 Agax 请求的结果填充 myStore 存储。ajax调用中的onsuccess事件应该如下,

 var jsonData = Ext.util.JSON.decode(response.responseText);
 myStore.add(jsonData['myresultlist']);
 myStore.sync();

然后确保您从服务器端返回一个有效的 json,如下所示,

{
"myresultlist": [
    {
        "id": "1",
        "name": "anne",
        "age": "21"
    },
    {
        "id": "2",
        "name": "jack",
        "age": "26"
    },
    {
        "id": "3",
        "name": "Tom",
        "age": "21"
    }
],
"success": "true",
"info": "My Results List!"
}
于 2012-02-16T05:19:08.837 回答