답변과 테스트를 많이 했었지만 주 뷰에서 TreePanel을 가져 와서 JSON 트리 데이터를 표시 할 수 없습니다. 나는 누군가가 내가 잘못하고 있거나 올바르게 활용하지 못하는 것을 불러 줄 수 있기를 바라고있다.ExtJS5 TreeStore에서 JSON을 TreePanel로로드
Tree.json
{
"message": "SUCCESS",
"details": {
"text": "Categories",
"expanded": "true",
"leaf": "false",
"children": [
{
"text": "Child 1",
"leaf": "true"
},
{
"text": "Child 2",
"leaf": "true"
},
{
"text": "Child 3",
"expanded": "true",
"leaf": "false",
"children": [
{
"text": "Grandchild",
"leaf": "true"
}
]
}
]
}
}
Model.js
Ext.define('MyApp.model.Model',{
extend: 'Ext.data.TreeModel',
requires: ['Ext.data.Field'],
fields:['text']
});
Models.js
Ext.define('MyApp.store.Models',{
extend: 'Ext.data.TreeStore',
alias: 'store.models',
model: 'MyApp.model.Model',
autoLoad: true,
proxy: {
type: 'ajax',
url: 'data/Tree.json',
reader: {
type: 'json',
rootProperty: 'details'
}
});
View.js (발췌문)
: 여기 내 코드입니다xtype: 'treepanel',
maxWidth: 300,
minWidth: 150,
store: {
type: 'models',
},
rootVisible: false
제 생각에는 빈 나무가 보입니다. rootProperty를 '세부 정보'로 설정하면 Chrome의 개발자 도구 및 방화범 네트워크 탭에서 내 json의 무한 요청을 표시하지만보기에로드되지 않습니다.
올바른 방향으로 나를 가리키게하는 것이 무엇이든 매우 도움이 될 것입니다! 문법이 모두 옳은 것처럼 보이기 때문에 내가 잘못하고있는 것을 생각할 수 없다. 그래서 막 다른 골목을 쳤다.
감사합니다.
편집 : 내보기에서 인라인으로 상점을 만들지 만 별도의 store.js 파일에서 스토어를 만들 때 json 데이터를로드 할 수있었습니다. 나는 또한과 같이 가게 초기화를 변경 :
store: Ext.create('Ext.data.TreeStore',{
fields:['name', 'description'],
proxy: {
type: 'ajax',
url: 'data/Categories.json',
reader: {
type: 'json',
rootProperty: 'children'
}
},
}
또한 "아이들"을 "세부 사항"에서 내 JSON의 필드를 변경하고 표시 할 수 있었다. 이것은 나중에 내 요구 사항과 일치하지 않을 가능성이 있지만 지금 당장 얻을 수있는 것 (내가 원하는 것과 인라인 저장소 생성과 다른 JSON 형식)을 취할 것입니다.
더 많은 도움이 될만한 정보를 보내 주시면 감사하겠습니다.