Чтобы создать древовидную панель, я настраиваю ее на хранилище деревьев, чей URL-адрес прокси-сервера AJAX получает json данных, которые я не контролирую. Но использование Ext.data.reader.Json
transform
свойства , вызываемого перед выполнением readRecords, дает возможность изменить переданный объект необработанных (десериализованных) данных из прокси AJAX в измененный или совершенно новый объект данных , В конфигурации transform
приведен фрагмент кода ниже:
Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url : 'users.json',
reader: {
type: 'json',
transform: {
fn: function(data) {
// do some manipulation of the raw data object
return data;
},
scope: this
}
}
},
});
Я бы хотел привести пример, как go изменить тип возвращаемого объекта JSON
[
{
"id": 3,
"attributes":
{},
"name": "user_one",
"login": "",
"email": "user_one@ats",
"phone": "0751223344",
"readonly": false,
"administrator": false,
"password": null
},
{
"id": 4,
"attributes":
{},
"name": "user_two",
"login": "",
"email": "user_two@ats",
"phone": "0751556677",
"readonly": false,
"administrator": false,
"password": null
}
]
в JSON объект, подходящий для хранилища деревьев.
Иерархическое дерево должно отображаться, чтобы показать, к какому пользователю относится администратор, используя условие administrator==true
из возвращенного JSON, затем второго AJAX запрос, который возвращает администраторов, показанных здесь.
[
{
"user_id": 3,
"admin_id": 1,
},
{
"user_id": 4,
"admin_id": 2,
}
]