如何将AjaxRequest的响应添加到商店或将其显示在列表中

时间:2012-01-28 19:32:56

标签: javascript sencha-touch ajax.request

我有一个使用Ext.Ajax.request连接到WebService的sencha触摸代码。在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);
            }
        });
    };

1 个答案:

答案 0 :(得分: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>'

    });

然后在myStore商店中填写Agax请求的结果。 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!"
}