Пожалуйста приведите пример работы ExtJS 4 с TreeStore с загрузкой данных с сервера.
Задача.
создать treestore, с моделью данных типа двухуровневого дерева вложенных папок с произвольным кол-вом элементов в втором уровне:
'01.01.2012'
-> '1111'
----> 1.1
----> 1.2
----> 1.3
----> 1.4
-> '2222'
----> 2.1
----> 2.2
'02.01.2012'
-> '3333'
----> 3.1
При этом прокси должен находиться в модели (как рекомендуют для MVC), загрузка с сервера - через ajax/json, сценарий php (сам сценарий давно готов, отдает корректный json_encode данные json).
Сейчас споткнулся на описании полей типов данных в модели - тип данных array там не описан, а у меня кол-во элементов в массиве ("папке" в дереве) - произвольное...
Куски сценария.
контроллер:
Ext.define('ECS2.controller.controller_invoices', {
extend: 'Ext.app.Controller',
views: 'view_invoices_list',
stores: [ 'treestore_invoices' ]
});
модель:
Ext.define('ECS2.model.treestore_model_invoices', {
extend: 'Ext.data.model',
fields: [
{name: 'invoicedate', type: 'date'},
{name: 'number', type: 'array'}, // а типа массива ведь нету...
{name: 'items', type: 'array'} // а типа массива ведь нету...
],
proxy: {
type: 'ajax',
url: '/load_invoices.php',
reader: {
type: 'json',
root: 'Root'
}
}
});
тристор:
Ext.define('ECS2.store.treestore_invoices', {
extend: 'Ext.data.TreeStore',
model: 'treestore_model_invoices',
autoLoad: true
});
Ругани нет, сценарий php грузится, отдает данные, но дерево не отображается...