Как получить значения вышестоящих элементов дерева 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, время: 01:51. |