Как получить значения вышестоящих элементов дерева TreeStore ?
ExtJS 4, treepanel, данные грузятся через сторедж из json файла и успешно отображаются.
Есть метод record.get('text'), с его помощью можно получить скажем при клике мышью на элементе дерева значение элемента (атрибут text ноды). Но как получить значения вышестоящих элементов ? Пример, есть дерево: 1 ...2 ......3 Как при щелчке на конечном элементе дерева (3) получить значение элементов (2) и (1) ? |
Путем экспериментов разобрался самостоятельно.
1. Есть встроенные функции модели и нодинтерфейса, позволяющие получить значение любого атрибута текущего элемента либо пути:
listeners: {
itemclick: function(view, record, item, index, e, obj) {
console.log(record.get('text'));
console.log(record.getPath('text'));
console.log(getDepth('text'));
}
}
2. Стандартный json файл можно расширять с помощью полей модели:
Ext.define('ECS2.model.model_treestore_invoices', {
extend: 'Ext.data.Model',
fields: [
{name: 'text', type: 'string'}, // указывать обязательно для визуального вывода в дерево
{name: 'invoice_date', type: 'date'},
{name: 'invoice_number', type: 'string'},
{name: 'invoice_item', type: 'string'}
]
});
Затем эти скрытые поля можно использовать в логике приложения:
...
console.log(record.get('invoice_item'));
...
|
| Часовой пояс GMT +3, время: 13:55. |