我正在从剑道树列表移动到农业网格树数据网格。我的表格数据格式如下。但是Ag网格期望以树中节点的字符串数组形式的数据。我该如何使用/自定义下面带有ag网格的数据。
[
{
"fieldId":"A",
"parentId":null,
},
{
"fieldId":"B",
"parentId":A,
},
{
"fieldId":"C",
"parentId":B,
},
]
我只能使用如下所示的“ getDataPath”为1级层次结构创建一个网格,但无法理解如何为更高层次结构做
this.getDataPath = function (data) {
return [data.parentId, data.fieldId];
};
答案 0 :(得分:1)
您需要对其进行循环扫描:
let data = [
{"fieldId":"A", "parentId":null},
{"fieldId":"B", "parentId":"A"},
{"fieldId":"C", "parentId":"A"},
{"fieldId":"D", "parentId":"B"},
{"fieldId":"E", "parentId":"D"}
];
function getParentLoop(fieldId, path){
let p = data.filter(i=>i.fieldId == fieldId)[0];
if(p.parentId){
path.unshift(p.fieldId);
return getParentLoop(p.parentId, path)
}
else {
path.unshift(p.fieldId);
}
return path;
}
data.map(i=>{
i.path=[]
if(i.parentId){
getParentLoop(i.parentId, i.path);
i.path.push(i.fieldId);
}
else{
i.path.push(i.fieldId)
}
return i;
});
console.log(data);
this.getDataPath = function (data) {
return data.path;
};