【问题标题】:AG-Grid tree data structureAG-Grid树数据结构
【发布时间】:2019-02-24 13:35:33
【问题描述】:

我正在从剑道树列表移动到 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];
};

【问题讨论】:

    标签: angular ag-grid


    【解决方案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){
        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;
    };
    

    【讨论】:

    • 基本上很棒的解决方案。但是为什么不在调用 getParentLoop 之前将 i.fieldId 推入 i.path 呢?
    • @mila 似乎只是一个错字,因为它不会影响结果
    猜你喜欢
    • 2018-02-15
    • 2017-03-06
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 2021-10-20
    • 2018-10-28
    • 2019-09-04
    相关资源
    最近更新 更多