저는 store.load()
으로 전화하지만 treepanel은 첫 번째 레벨 (모델 ProcessVedDoc 모델) 만 표시합니다. load 메소드에 콜백을 추가하면 레코드에 빈 childNodes가 표시됩니다. 데이터에 자식이 있지만 모델 VedDoc에 매핑되지 않은 개체가 있습니다. 무엇이 잘못 될 수 있습니까? screenshot from firefox dev toolsExtJS Treepanel에 어린이가 표시되지 않습니다
모델
Ext.define('Proj.model.ProcessVedDoc', {
extend: 'Ext.data.Model',
fields: [
{name: "text", mapping: 'name'},
{name: "expanded", type: "boolean", defaultValue: true},
{name: "loaded", type: "boolean", defaultValue: true}
}],
requires : ['Proj.model.VedDoc'],
hasMany: [{
model: 'Proj.model.VedDoc',
associationKey : 'children',
name: 'children'
}]});
Ext.define('Proj.model.VedDoc', {
extend: 'Ext.data.Model',
fields: ['id',
{name: 'text', mapping: 'name'},
{name: 'leaf', type: 'boolean', defaultValue: true, persist: false}],
idProperty: 'id'});
스토어
Ext.define('Proj.store.VedDocsTreeStore', {
extend: 'Ext.data.TreeStore',
model: 'Proj.model.ProcessVedDoc',
autoLoad: false,
autoSync: false,
root: {
expanded: true
},
proxy: {
type: 'ajax',
url: 'portfolios/veddocs',
getParams: Ext.emptyFn,
timeout: 300000,
reader: {type: 'json', root: 'docs'}
}});
보기
{
xtype: 'treepanel',
title: 'Documents',
name: 'vedDocs',
margin: '15 0 0 0',
width: 650,
height: 350,
rootVisible: false,
store: vdocs
}
JSON
{
"docs": [{
"name": "15a1dc1515aa151eea556",
"children": [
{"name": "Doc1", "id": "bf4e2776-1089-445f-98dd-e5e8fe5c798f"},
{"name": "Doc2", "id": "1312bba6-9d05-4aa5-b069-b2958043c2a5"},
{"name": "Doc3, "id": "49a045cf-b5cf-4478-b886-f078e6a48753"}]
},
{
"name": "15a1dc18515bb515aa151556",
"children": [
{"name": "Doc1", "id": "3cef1250-fd35-4ff6-bbbf-33e4c59d4767"},
{"name": "Doc2", "id": "a43ffa24-ed25-4fc7-80a5-f4b1a78b666e"}]
}],
"success": true}
나는 ** 잎 ** 속성을 놓쳤다 고 생각합니다. [ExtJs tree docs] (https://docs.sencha.com/extjs/6.0.2/guides/components/trees.html)를 참조하십시오. –
답변 해 주셔서 감사합니다. 이 필드는 모델 ExtJs (VedDoc)에 있습니다. 나는 json을 바꿨다. '잎'을 추가하고 '이름'-> '텍스트'로 이름을 변경했습니다. 문제가 여전히 존재합니다. '{ "text": "Doc1", "id": "7813eb3c-57f9-4f39-aefc-af4860441189", "leaf": true}' – Aleksey