Как создать панель дерева в Extjs с данными son json - PullRequest
0 голосов
/ 14 мая 2019

Я хочу создать панель дерева, когда я определяю TreeStore, я получаю следующую ошибку: «Не удается прочитать свойство« isModel »из неопределенного. Вот фрагмент моего кода:

Ext.define('App.view.AreaActivosTree', {
  extend: 'Ext.panel.Panel',
  alias: 'widget.AreaActivosTree',
  requires: ['Ext.toolbar.Toolbar', 'Ext.data.*', 'Ext.grid.*', 'Ext.tree.*',    'Ext.tip.*'],

initComponent: function() {

var store = Ext.create('Ext.data.TreeStore', {
fields: ['text'],
proxy:{
  type: 'ajax',
  url: 'principal/app/tree_areas_versat/',
  reader: {
    type: 'json',
    root: 'root',
         }
 },
autoLoad:true,

});

Ext.apply(this, {
items: [{
   xtype: 'treepanel',
   rootVisible: false,
   store: store,
   }],

});

this.callParent(arguments);
},

});

json que devuelve url: {"total": 73, "root": {"expanded": true, "children":      [{"text": "AREA   VICEPRESIDENCIA COMERCIAL", "expanded": true, "children": [{"text": "DIRECCI\u00d3N COMERCIAL LOGISTICA DE ALMACEN", "leaf": true}, {"text": "DIRECCI\u00d3N COMERCIAL MARKETING Y VENTAS", "leaf": true}, {"text": "DIRECCI\u00d3N COMERCIAL NUEVOS NEGOCIOS", "leaf": true}, {"text": "DIRECCI\u00d3N COMERCIAL TRANSPORTE Y SEGURO", "leaf": true}, {"text": "VICEPRESIDENCIA COMERCIAL", "leaf": true}, {"text": "OFICINA SECRETARIA VICE PRESIDENCIA COMERCIAL", "leaf": true}]}, {"text": "AREA DIRECCION DE INSPECCION DEL TRANSPORTE", "expanded": true, "children": [{"text": "DIRECCION DE INSPECCION DEL TRANSPORTE", "leaf": true}, {"text": "GPS", "leaf": true}]}, {"text": "AREA VICEPRESIDENCIA LOGISTICA", "expanded": true, "children": [{"text": "VICEPRESIDENCIA LOGISTICA", "leaf": true}, {"text": "DIRECCI\u00d3N DE GESTI\u00d3N DE LOS RECURSO E INVENTARIOS", "leaf": true}, {"text": "GRUPO ADMINISTRACI\u00d3N", "leaf": true}]}, {"text": "TRANSPORTE", "expanded": true, "children": [{"text": "DIRECCION", "leaf": true}]}, {"text": "DIRECCION JURIDICA AFT", "expanded": true, "children": [{"text": "OFICINA DIRECCION", "leaf": true}, {"text": "OFICINA ASESORES JURIDICOS",   "leaf": true}]}]}, "success": true} 

1 Ответ

0 голосов
/ 14 мая 2019

Из документов для конфигурации модели магазина:

Эта конфигурация требуется, чтобы хранилище могло считывать данные, если вы не определили конфигурацию полей, котораясоздаст анонимную Ext.data.Model.

Таким образом, вы можете определить модель для вашего магазина или просто добавив fields: ['text'] в конфигурацию вашего магазина, добейтесь цели.

EDIT:

Я ошибся, похоже, проблема в том, что вам нужно определить свойство JSON, где находится ваш корень.Так что в этом случае, я думаю, это будет root.children, но это вызывает бесконечно загружаемое дерево для меня.Я заставил его работать, изменив ваш JSON так, чтобы он просто перечислял дочерние элементы корня и не включал конфигурацию корня.Смотри скрипку здесь .

...