Как добавить ответ от AjaxRequest в магазин или отобразить его в списке - PullRequest
1 голос
/ 28 января 2012

У меня был сенсорный код sencha, который подключается к WebService с помощью 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);
            }
        });
    };

1 Ответ

0 голосов
/ 16 февраля 2012

создать Ext.List с атрибутом store,

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.Событие onsuccess в вызове ajax должно выглядеть следующим образом:

 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!"
}
...