matTreeNodeDef 迭代上的角垫树无法获得自 ngfor 起的索引

and*_*enX 10 angular-material angular

我有一个有角度的材料树。我有一个像下面这样的代码

<mat-tree-node *matTreeNodeDef="let node; let idx=index">
  {{node.filename}}::{{idx}}
</mat-tree-node>
Run Code Online (Sandbox Code Playgroud)

这里 idx 没有填充

T. *_*Rao 5

恐怕*matTreeNodeDef与指令不一样*ngFor

*matTreeNodeDef指令接受 2 个输入。

首先TreeNode<T>可以定义为

<mat-tree-node *matTreeNodeDef="let node">
  ...
</mat-tree-node>
Run Code Online (Sandbox Code Playgroud)

其中node表示 TreeNode 对象。

第二个matTreeNodeDefWhen是过滤树节点的函数,可以定义为

超文本标记语言

<mat-tree-node *matTreeNodeDef="let node; when hasChild">
  ...
</mat-tree-node>
Run Code Online (Sandbox Code Playgroud)

TS

hasChild = (_: number, node: FlatNode) => node.expandable;  // returns a boolean value
Run Code Online (Sandbox Code Playgroud)

一般来说,树结构没有索引。

参考: https: //material.angular.io/components/tree/api#MatTreeNodeDef


小智 0

我认为它没有填充,因为你没有迭代。唯一let node;声明节点作为数据源。尝试let node of nodesngFor="let node of node; index as idx"