我已經做了很多尋找答案和測試的,但似乎無法得到TreePanel中在我的顯示JSON樹數據我正在主視圖。我希望有人能說出我做錯了或沒有正確使用的東西。ExtJS5加載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設置爲'details'時,Chrome的Developer Tools和Firebug中的Network選項卡顯示無限請求我的json,但沒有加載到視圖中。
任何指向我正確的方向將是非常有益的!因爲語法看起來都是正確的,所以我想不出任何我錯了,所以我已經走到了死衚衕。
謝謝!
編輯:當我在視圖中創建內嵌存儲時,我能夠加載json數據,但不能從單獨的store.js文件中加載。我也改變了存儲庫初始化像這樣:
store: Ext.create('Ext.data.TreeStore',{
fields:['name', 'description'],
proxy: {
type: 'ajax',
url: 'data/Categories.json',
reader: {
type: 'json',
rootProperty: 'children'
}
},
}
我也改變了我的JSON的字段從「細節」,以「孩子」,這是能夠顯示。這可能不會與我的要求相匹配,但我會採取我現在可以獲得的內容(與我想要的和內聯商店創建不同的JSON格式)。
任何進一步的幫助,將不勝感激!