Angular Material 步骤条

2025年3月17日 | 阅读 7 分钟

Angular content 步进器通过将内容划分为逻辑步骤,从而提供类似向导的工作流程。

material 步进器负责 CDK 步进器的基础逻辑,该逻辑驱动分步工作流程。 material 步进器扩展了 CDK 步进器和 material design 样式。

步进器变体

有两种步进器组件:mat-horizontal-stepper 和 mat-vertical-stepper。 它们的使用方式相同。 唯一的区别是步进器的方向。

app.component.html

app.component.ts

app.component.css

输出

Angular Material Stepper

app.component.html

app.component.ts

app.component.css

输出

Angular Material Stepper

Mat-horizontal-stepper 选择器可以创建水平步进器,Mat-vertical-stepper 用于创建垂直步进器。 Mat-step 组件放置在两个步进器组件中的任何一个内部。

标签

如果步骤的标签是文本,则使用 label 属性。

对于更复杂的标签,添加一个带有 matStepLabel 指令的模板。

标签位置

对于 mat-horizontal-stepper,我们定义标签的位置。 end 是默认值,而 below 会将其放置在步骤图标下方而不是在其侧面。 label 属性控制此行为。

步进器按钮

有两个按钮指令支持在多个阶段之间导航:matStepperPrevious 和 matStepperNext。

线性步进器

linear 属性设置为 mat-horizontal-stepper 和 mat-vertical-stepper 以创建一个线性步进器,该步进器要求用户在继续执行以下步骤之前完成之前的步骤。 对于每个 mat-step,步骤控制功能将设置为用于检查操作有效性的顶层 abscontrol。

以下是两种方法。 一种使用表单作为步进器,另一种为每个步骤使用不同的表单。

或者,如果您不想使用 angular 表单,则可以在每个步骤中传入 complete 属性,这将不允许用户继续,直到它变为 true。 请注意,如果设置了绝对控制和阶段控制,则阶段控制优先。

为每个步骤使用不同的表单

步骤类型

可选步骤

如果不需要完成线性步进器步骤,则在 mat-step 上设置 optional 属性。

可编辑步骤

默认情况下,步骤是可编辑的,这意味着用户可以返回到先前完成的操作并编辑其响应。

已完成步骤

默认情况下,如果阶段有效(在线性步进器的情况下)且用户已与该阶段交互,则该阶段的绝对属性是正确的。 但是,用户也可以根据此默认完整行为的要求覆盖内置属性。

覆盖图标

默认情况下,步骤标题使用通过 <mat-icon> 元素创建并从 Material Design 图标集中制作的图标。 如果要提供多组图标,可以通过为要覆盖的每个图标放置一个 MatsapperIcon 来实现。 单个阶段的指示性、活动和替代值可通过模板变量获得

请注意,提供自定义图标时,您并不限于使用 mat-icon 组件。

步骤状态

您可以随时设置步骤位置。 默认映射为图标提供的位置。 但是,可以像上面一样覆盖它。

为了使用自定义步骤状态,您应该将 displayDefaultIndicatorType 选项添加到全局默认步进器,该步进器可以通过在应用程序的根模块中为 STEPPER_GLOBAL_OPTIONS 提供一个值来指定。

app.component.html

app.component.ts

app.component.css

输出

Angular Material Stepper

错误状态

如果您想在用户移动到未正确填写的步骤时显示错误。 然后,您可以通过 errorMessage 输入设置错误消息,并通过 STEPPER_GLOBAL_OPTIONS 注入令牌中的 showError 选项配置步进器以显示错误。

app.component.html

app.component.ts

app.component.css

输出

Angular Material Stepper
Angular Material Stepper

键盘交互

  • LEFT_ARROW:它将焦点放在上一步标题上
  • RIGHT_ARROW:它将焦点放在下一步标题上
  • HOME:它将焦点放在第一个步骤标题上
  • END:它将焦点放在最后一个步骤标题上
  • ENTER、SPACE:它选择当前焦点所在的步骤
  • TAB:关注它是下一个可访问元素
  • SHIFT+TAB:它将焦点放在上一个可访问元素上

本地化标签

消息的本地化是通过在根模块中提供带有翻译值的子类来完成的。

可访问性

步进器被视为用于辅助功能的选项卡式视图,因此默认情况下会赋予 role = "tablist"。 步骤标题的 aria-selected 功能和步骤内容的 aria-extended 质量基于阶段选择的更改进行设置。

区域标签或区域标签为步进器和每个步骤提供有意义的标签。