【问题标题】:Tree show expand symbol when children array is empty子数组为空时树显示展开符号
【发布时间】:2021-05-10 15:16:21
【问题描述】:

我正在使用制表树 js 库 (http://tabulator.info/)。但是为什么即使子数组为空,树也会显示展开符号?这很烦人!是bug吗?

这个:

var tdata = [{id:1, name:"Billy Bob", age:"12", "_children":[]},];

结果如下:

【问题讨论】:

    标签: javascript tabulator


    【解决方案1】:

    就所见,如果您有一个“_children”数组(即使它是空的)并且您的“dataTree”设置为 true,那么您的展开按钮将始终可见。

    实际上它是在制表器回购中打开的issue ...

    所以这里只有一种解决方案或解决方法,

    当没有孩子(后端)时,您可以尝试不提供 _children 数组 或者在前端使用js进行调整

    var tdata = [
      {
        id: 1,
        name: "Billy Bob",
        age: "12",
        _children: []
      }
    ];
    
    tdata.forEach((e) => {
      if (!e._children.length) delete e._children; //this will delete any empty _children element 
    });
    
    

    这是一个working example(它有两行,一排有孩子,一排没有,尝试删除 for each 并用它进行实验)

    【讨论】:

      【解决方案2】:

      我找到了原因。您需要从创建 new Tabulator 对象中删除“dataTree:true,”部分。

      【讨论】:

      • 如果有多个数据行,一个有孩子,一个没有?如果您将其删除或将其设置为 false,则您为每一行都禁用了它……这不起作用
      • 在这种情况下,您需要在使用“dataTree:true”时从表数据中删除 "_children":[] 属性。如果您在 tabledata 中有“_children”属性以及“Tabulator”对象中的“dataTree: true”,它会自动将 dataTreeExpandElement 添加到该行以显示该行应该有孩子。
      • 是的,这正是我所做的,请阅读我的答案。如果您删除数据树道具,那么即使您有孩子,他们也不会显示。
      • 其实这不是我的问题。如问题所示,他没有提到他想使用混合类型。我正在为他确切提出的问题提供解决方案。
      • 首先它们是相同的类型,其次删除它会限制 tabulator 的功能。最后你的不能是他要求的确切答案,因为谷歌搜索会告诉他他可以禁用表格树,它在制表符的文档中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 2012-09-09
      相关资源
      最近更新 更多