Angular Material-Tree17 Mar 2025 | 4 分钟阅读 mat-tree 提供内容设计、样式和树,用于显示分层数据。该树建立在 CDK 树的基础上,并使用相同的接口作为其数据源输入和模板,除了其元素和属性选择器将以 material 前缀而不是 CDs。 树有两种类型:平面树和嵌套树。 平面树在平面树中,层次结构被扁平化;节点不是相互包含,而是作为同级按顺序呈现。 app.component.html app.module.ts 输出 ![]() ![]() 平面树通常易于设置样式和观察。它们也更适合滚动变化,例如无限或虚拟滚动。 嵌套树在嵌套树中,子节点放置在其父节点内的 DOM 中。父节点有一个所有子节点都有节点的出口。 app.component.html app.component.ts app.component.CSS 输出 ![]() 嵌套树更容易处理分层关系,这对于平面节点来说很难实现。 特点<mat-tree> 本身仅与一个树结构的渲染相关。可以通过在节点模板内添加行为来构建树,例如填充和切换。表格的数据源将传播影响间歇性数据(例如展开/折叠)的交互。 TreeControlTreeControl 控制树节点的展开/折叠状态。用户可以通过树控件递归地展开/折叠树节点。对于嵌套树节点,需要将 GetChildren 函数传递给 NestedTreeControl 才能顺利工作。 getChildren 函数可以返回给定节点的子节点的概述或子节点的数组。 FlatTreeControl 需要传递给扁平树节点,以使 gatelevel 和 issandable 函数递归。 切换为了增加或折叠树节点,将在树节点中添加 MatTreeNodeToggle。切换折叠服务于树控件,并且可以通过将 [matTreeNodeToggleRecursive] 设置为 correct 来扩展树节点。 嵌套树不需要填充,因为填充可以很容易地添加到 DOM 的结构中。 可访问性没有文本或标签的树必须通过 area-label 获得有意义的标签。如果未设置,则 Aria-read-only 默认为 true。 Mat-Tree 不会自行管理任何焦点键盘交互。用户可以将所需的键盘交互添加到他们的应用程序中。 |
我们请求您订阅我们的新闻通讯以获取最新更新。