Показать сообщение отдельно
  #1 (permalink)  
Старый 27.06.2012, 11:57
Аспирант
Отправить личное сообщение для Allan Stark Посмотреть профиль Найти все сообщения от Allan Stark
 
Регистрация: 24.04.2010
Сообщений: 87

Пожалуйста приведите пример работы ExtJS 4 с TreeStore с загрузкой данных с сервера
Пожалуйста приведите пример работы 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 грузится, отдает данные, но дерево не отображается...

Последний раз редактировалось Allan Stark, 27.06.2012 в 14:20.
Ответить с цитированием