我想从角树组件中过滤节点。当给过滤器函数进行过滤时,与过滤器匹配的节点的子节点也会被过滤,我想让它们保持可见。
我尝试访问父节点属性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
应该有一个值,但它始终是未定义的。
有没有办法不过滤孩子?