angular - AG-Grid树数据结构
问题描述
我正在从剑道树列表移动到 ag 网格树数据网格。我有以下格式的表格数据。但是 Ag 网格期望树中节点的字符串数组中的数据。如何使用/自定义以下数据与 ag 网格。
[
{
"fieldId":"A",
"parentId":null,
},
{
"fieldId":"B",
"parentId":A,
},
{
"fieldId":"C",
"parentId":B,
},
]
我能够使用如下所示的“getDataPath”仅为 1 级层次结构创建 ag 网格,但无法理解如何为更高级别的层次结构做些什么
this.getDataPath = function (data) {
return [data.parentId, data.fieldId];
};
解决方案
您需要对其进行循环扫描:
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){
i.path.push(i.fieldId);
getParentLoop(i.parentId, i.path);
}
else{
i.path.push(i.fieldId)
}
return i;
});
console.log(data);
this.getDataPath = function (data) {
return data.path;
};
推荐阅读
- java - 加密数据时出现 InvalidKeyException
- spring-boot - spring异步任务在调用之前获取que使用情况
- mysql - MySQL选择所有行但排除相同的值
- flutter - 尝试使部分页面滚动时出错
- android - SQLite - 如何有效地加载包含在 id 列表中的数据
- php - 使用 curl 登录 facebook
- angular - 未定义标识符“....”。'__type' 不包含这样的成员 Angular FormArray
- selenium-webdriver - 单击使用 selenium 的加载更多按钮在 python3.7 中无法正常工作
- algorithm - 是否有一种有效的算法可以在邻接矩阵形式的无向和未加权图中找到 k 长度路径(NOT walks)的数量?
- html - 从徽标中删除特定的悬停效果,同时将其保留为返回主页的链接