使用 *ngIf 过滤清晰递归树中的树节点

Use *ngIf to filter tree nodes in clarity recursive tree

我有一个递归清晰度树

<clr-tree>
  <clr-tree-node 
      *clrRecursiveFor="let type of displayedTypes; getChildren: getTypeChildren" 
      [(clrSelected)]="type.selected"    
      [(clrExpanded)]="type.expanded"
    >
      {{type.name}}
    </clr-tree-node>
</clr-tree>

但是我想过滤一些树节点。在一个简单的例子中,我会使用 *ngIf 指令。但是我这里已经有另一个指令 *clrRecursiveFor 了。 所以我试着把它包装成ng-container

<clr-tree>
    <ng-container  *clrRecursiveFor="let type of displayedTypes; getChildren: getTypeChildren" > 
      <clr-tree-node *ngIf="isVisible(type)"...>
          ...
        </clr-tree-node>
        </ng-container>
    </clr-tree>

您可以在 app.component.html

中查看一些示例 here

但在这种情况下,即使 isVisible 始终 returns 为真,也不会显示任何内容。我如何在这里使用 *ngIf 指令来过滤树节点?

现在不可能了。最好在组件中过滤数组。