0

我想从角树组件中过滤节点。当给过滤器函数进行过滤时,与过滤器匹配的节点的子节点也会被过滤,我想让它们保持可见。

我尝试访问父节点属性isHidden以检查父节点是否未隐藏,也不要隐藏当前节点。

这是我的过滤代码:

  treeModel.filterNodes((node: TreeNode) =>{
    console.log("Has parent?: ", !node.isRoot); // works
    console.log("Parent hidden?", node.parent.isHidden); // always undefined
    console.log("Visible bc parent", !(node.isRoot ?? node.parent.isHidden)); // always true for child => !(false ?? undefined)
    
    return !(node.isRoot ?? node.parent.isHidden) || // doesn't work; always true for child
    node.data.name.toLowerCase().includes(this.unitSearchString.toLowerCase()) || // works
    node.data.id.toLowerCase().includes(this.unitSearchString.toLowerCase())} // works
  );

这应该可以工作,因为过滤器从根节点开始,然后进入子节点,所以我希望它node.parent.isHidden应该有一个值,但它始终是未定义的。

有没有办法不过滤孩子?

4

0 回答 0