【发布时间】:2016-10-09 05:31:29
【问题描述】:
我希望在我的视图中获得一个呈现为树的 JSON 对象。我的代码在一个名为 /app/view/main/Tree.js 的文件中
Ext.define('SGSS.view.main.Tree', {
extend: 'Ext.tree.Panel',
alias: 'viewmodel.tree',
xtype: 'SimpleTree',
width: 400,
height: 250,
store: {
root: {
expanded: true
},
proxy: {
type: 'ajax',
url: '/cgi-bin/uiconnector',
reader: {
type: 'json',
rootProperty: 'assets'
}
}
}
});
当我调用引用此内容的页面时,我看到的屏幕看起来与预期的有所不同:
它只是将无限期地继续存在的空白文件夹。不是我想到的 JSON 对象。对我做错了什么有什么想法吗?
我的 JSON 如下:
{
"assets": {
"batteryzone": [
{
"id": "10001",
"type": "batteryzone",
"label": "BZ1",
"parentid": "1001",
"model": "sim",
"alarmsev": "None",
"extant": "true",
"invertersonline": "0",
"hvaconline": "0",
"racksonline": "0",
"interfacerev": "0",
"plcrevision": "0",
"numbatteryracks": "20",
"dcvoltage": "0.0",
"dcpower": "0.0",
"averagesoc": "0.0",
"storedenergy": "0.0",
"startupsubstate": "0",
"startupsequence": "0",
"recoverymode": "false",
"tempmaxconnected": "-4.0",
"chargecapacity": "0",
"dischargecapacity": "0",
"dccurrent": "0.0",
"containerenabled": "false",
"hicell": "3.016",
"locell": "3.011",
"nameplateenergy": "1950",
"recoveryrunning": "false",
"currinputs": []
},
{
"id": "10002",
"type": "batteryzone",
"label": "BZ2",
"parentid": "1001",
"model": "sim",
"alarmsev": "None",
"extant": "true",
"invertersonline": "0",
"hvaconline": "0",
"racksonline": "0",
"interfacerev": "0",
"plcrevision": "0",
"numbatteryracks": "20",
"dcvoltage": "0.0",
"dcpower": "0.0",
"averagesoc": "0.0",
"storedenergy": "0.0",
"startupsubstate": "0",
"startupsequence": "0",
"recoverymode": "false",
"tempmaxconnected": "-4.0",
"chargecapacity": "0",
"dischargecapacity": "0",
"dccurrent": "0.0",
"containerenabled": "false",
"hicell": "3.016",
"locell": "3.011",
"nameplateenergy": "1950",
"recoveryrunning": "false",
"currinputs": []
}
]
}
}
我错过了什么吗? (我的意思是,显然我是!)
【问题讨论】:
-
我看到的第一个问题是您的商店似乎不是定义为 TreeStore,而是定义为标准(平面)商店。当我忘记将商店设为树商店时,我不止一次遇到同样的无限递归问题。
标签: javascript json extjs mvvm extjs6