ext 7 图表代理数据格式
ext 7 chart proxy data format
我尝试在 ext 7 的笛卡尔图表上使用直接代理加载 json 数据,如下所示:
https://fiddle.sencha.com/#view/editor&fiddle/3bae
在此示例中,我从 ajax 加载数据,但 return 数据是相同的。 (它实际上是从我直接 api 复制粘贴的)。我在我的测试系统上有相同的结果:我可以加载硬编码数据但不能从代理加载。
我必须如何格式化数据才能填充我的图表?
- 你的 JSON 的根 属性 必须是 'result.data'
- 数据是对象,不是数组
对于您的自定义 JSON,您可以编写 reader 转换器,如下所示:
...
...
proxy: {
type: 'ajax',
url: 'test.json',
reader: {
type: 'json',
rootProperty: 'data',
fields: ['month', 'value'], // What is it?
transform: {
fn: function (data) {
return Object.values(data.result.data);
},
scope: this
}
}
},
autoLoad: true
});
或者您可以更改后端以生成标准 extjs json,示例:
{
"users": [
{
"id": 1,
"name": "Ed Spencer",
"email": "ed@sencha.com"
},
{
"id": 2,
"name": "Abe Elias",
"email": "abe@sencha.com"
}
]
}
我尝试在 ext 7 的笛卡尔图表上使用直接代理加载 json 数据,如下所示: https://fiddle.sencha.com/#view/editor&fiddle/3bae
在此示例中,我从 ajax 加载数据,但 return 数据是相同的。 (它实际上是从我直接 api 复制粘贴的)。我在我的测试系统上有相同的结果:我可以加载硬编码数据但不能从代理加载。
我必须如何格式化数据才能填充我的图表?
- 你的 JSON 的根 属性 必须是 'result.data'
- 数据是对象,不是数组
对于您的自定义 JSON,您可以编写 reader 转换器,如下所示:
...
...
proxy: {
type: 'ajax',
url: 'test.json',
reader: {
type: 'json',
rootProperty: 'data',
fields: ['month', 'value'], // What is it?
transform: {
fn: function (data) {
return Object.values(data.result.data);
},
scope: this
}
}
},
autoLoad: true
});
或者您可以更改后端以生成标准 extjs json,示例:
{
"users": [
{
"id": 1,
"name": "Ed Spencer",
"email": "ed@sencha.com"
},
{
"id": 2,
"name": "Abe Elias",
"email": "abe@sencha.com"
}
]
}