我的页面中有一个dhtmlx甘特图,通常它可以完美地工作但现在当我有一个嵌套数组的JSON文件时,我的所有输出都将是unrecognized
。我试图填充official name
。
任何人都可以帮我吗?非常感谢你。
JSON
{
"data": [
{
"assign_to": {
"id": 3,
"employee_id": "28141",
"official_name": "Hal Jordan",
},
"task": {
"id": 1,
"name": "Modeling",
"description": "3d modeling work"
},
"start_date": "2017-06-15",
"end_date": "2017-06-19"
},
{
"assign_to": {
"id": 3,
"employee_id": "28144",
"official_name": "Kyle Rayner",
},
"task": {
"id": 8,
"name": "Composting",
"description": null
},
"start_date": "2017-06-01",
"end_date": "2017-06-08"
}
]
}
的Javascript
gantt.config.columns = [
{name: "assign_to.official_name", label: "Assign To", align: "left", width: 70},
];
function initializeGantt() {
gantt.init("my_scheduler");
gantt.load("/dashboard/ganttchart_list/5/?format=json");
}
initializeGantt();
HTML
<div id="my_scheduler" style='width:1405px; height:245px;'></div>
答案 0 :(得分:2)
dhtmlx gantt不支持嵌套结构,因此您需要在将项目加载到甘特图之前对其进行预处理。 既然你知道你有哪种格式以及gantt(https://docs.dhtmlx.com/gantt/desktop__supported_data_formats.html#json)所期望的格式,那么它应该不是问题。
最重要的事情
如下所示定义列名:
{name:&#34; assign_to.official_name&#34;,label:&#34;分配给&#34;,对齐:&#34;左&#34;,宽度:70},
列名不能映射到嵌套对象的属性,因此您必须在加载过程中展平结构,非常粗略,可以通过以下方式完成: http://snippet.dhtmlx.com/129d2e043
或者定义一个列模板,该模板将从嵌套对象中获取值: http://snippet.dhtmlx.com/9e8e65e85