Skip to content

查询树

当创建好FlexTreeManager对象实例后,我们就可以通过FlexTreeManager对象实例来查询树。

FlexTree提供支持了非常丰富的查询树的API

查询根节点

ts
const root = await treeManager.getRoot()

查询所有节点集

getNodes方法用于获取树的所有节点集,支持限制返回的层级。

ts
async getNodes(options?: { level?: number }): Promise<TreeNode[]>
  • 参数
参数 类型 默认 描述
options 可选的,配置选项
options.level number 可选的,限制返回的层级
  • 示例

返回所有节点集

ts
const nodes = await treeManager.getNodes()

限制返回所有节点集的层级

ts
// 只返回第1-3层节点集
const nodes = await treeManager.getNodes(3)
  • 说明

    getNodes方法返回的是有序的节点集 如:

  • Root
    • A
    • B
    • C

getNodes返回的是:

ts
[
    {id:1,left:1,right:8,level:1,name:"ROOT"},
    {id:2,left:2,right:3,level:2,name:"A"},
    {id:3,left:4,right:5,level:2,name:"B"},
    {id:4,left:6,right:7,level:2,name:"C"}
]

查询指定节点

getNode方法用于根据节点id用于获取指定节点。

ts
async getNode(nodeId: NodeId): Promise<TreeNode | undefined>
  • 参数
参数 类型 默认 描述
nodeId NodeId 节点id
  • 说明

  • NodeId是一个泛型类型,默认为是number类型, 您也可以通过构建FlexTreeFlexTreeManager的泛型来自定义。

查询后代节点集

getDescendants方法用于获取指定节点的后代节点集,支持限制返回的层级。

ts
    async getDescendants(
        nodeId?: NodeId | TreeNode, 
        options?: { level?: number, includeSelf?: boolean })
    : Promise<IFlexTreeNode<Fields, KeyFields>[]>
  • 参数
参数 类型 默认 描述
nodeId NodeId 节点id或节点对象,如果为undefined,则返回根节点的后代节点集。
options 可选的,配置选项
options.level number 可选的,限制返回的层级
options.includeSelf boolean false 可选的,是否包含自身节点

查询子节点集

getChildren方法用于获取指定节点的子节点集。

ts
    async getChildren(nodeId: NodeId | TreeNode) {
  • 参数
参数 类型 默认 描述
nodeId NodeId 节点id或节点对象
  • 说明

  • getChildren等效于getDescendants(nodeId,{level:1})方法。

查询第N个子节点

getNthChild方法用于获取指定节点的第N个子节点。

ts
async getNthChild(node: NodeId | TreeNode, index: number = 1)
: Promise<TreeNode | undefined> {
  • 参数
参数 类型 默认 描述
node NodeId | TreeNode 节点id或节点对象
index number 1 子节点的索引,从1开始,<0代表倒数
  • 说明

  • getNthChild支持传入负数,代表倒数第N个子节点。如getNthChild(100,-1)代表倒数第一个子节点。

查询后代节点数量

getDescendantsCount方法用于获取指定节点的后代节点数量。

ts
async getDescendantsCount(
    nodeId: NodeId | TreeNode, 
    options?: { level?: number }
): Promise<number>
  • 参数
参数 类型 默认 描述
nodeId NodeId | TreeNode 节点id或节点对象
options 可选的,配置选项
options.level number 0 可选的,限制层级

查询祖先节点集

getAncestors方法用于获取指定节点的祖先节点集。

ts
async getAncestors(
    nodeId: NodeId | TreeNode, 
    options?: { includeSelf?: boolean }
): Promise<TreeNode[]>
  • 参数
参数 类型 默认 描述
nodeId NodeId | TreeNode 节点id或节点对象
options 可选的,配置选项
options.includeSelf boolean false 可选的,是否包含自身节点

查询祖先节点数量

getAncestorsCount方法用于获取指定节点的祖先节点数量。

ts
async getAncestorsCount(nodeId: NodeId)
  • 参数
参数 类型 默认 描述
nodeId NodeId 节点id

查询父节点

getParent方法用于获取指定节点的父节点。

ts
async getParent(nodeId: NodeId | TreeNode): Promise<TreeNode>
  • 参数
参数 类型 默认 描述
nodeId NodeId | TreeNode 节点id或节点对象

查询兄弟节点集

getSiblings方法用于获取指定节点的兄弟节点集。

ts
async getSiblings(
    nodeId: NodeId | TreeNode, 
    options?: { includeSelf?: boolean }
):Promise<TreeNode[]>
  • 参数
参数 类型 默认 描述
nodeId NodeId | TreeNode 节点id或节点对象
options 可选的,配置选项
options.includeSelf boolean false 可选的,是否包含自身节点

查询下一兄弟节点

getNextSibling方法用于获取指定节点的下一个兄弟节点。

ts
async getNextSibling(nodeId: NodeId | TreeNode): Promise<TreeNode | undefined>
  • 参数
参数 类型 默认 描述
nodeId NodeId | TreeNode 节点id或节点对象

查询上一兄弟节点

getPrevSibling方法用于获取指定节点的上一个兄弟节点。

ts
async getPreviousSibling(nodeId: NodeId | TreeNode) : Promise<TreeNode | undefined>
  • 参数
参数 类型 默认 描述
nodeId NodeId | TreeNode 节点id或节点对象