Как добавить ответ от AjaxRequest в магазин или отобразить его в списке
У меня был сенсорный код 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 ответ
Создать 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!"
}