我的页面中有一个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"
}
]
}
Java脚本
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>
最佳答案
dhtmlx甘特图不支持嵌套结构,因此您需要在将项目加载到甘特图之前对其进行预处理。
由于您知道自己拥有哪种格式以及gantt(https://docs.dhtmlx.com/gantt/desktop__supported_data_formats.html#json)期望哪种格式,因此这不是问题。
最重要的事情
确保数据项具有“ id”属性
当您像这样定义列名称时:
{name:“ assign_to.official_name”,标签:“ Assign To”,对齐:“ left”,宽度:70},
列名称无法映射到嵌套对象的属性,因此,您必须在加载过程中将结构展平,非常粗略地讲,可以通过以下方式完成:
http://snippet.dhtmlx.com/129d2e043
或者定义一个列模板,该模板将从嵌套对象中获取价值:
http://snippet.dhtmlx.com/9e8e65e85
请检查控制台输出以获取结果数据集
关于javascript - dhtmlxgantt填充嵌套的JSON数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44626902/