我尝试自定义step-numbers
,如1
,2
,3
,每个步骤在步进器的initial state
中用不同的图标显示
我现在可以通过在step-numbers
中使用matStepperIcon
状态的edit
值来替换ng-template
,如下所示
有了这个,我看到只有当我们进行下一步时,先前的步骤step-number
才更改为icon
(donut_large
)。
<mat-vertical-stepper [linear]="isLinear" #stepper>
<ng-template matStepperIcon="edit"><mat-icon>donut_large</mat-icon> </ng-template>
<mat-step >
...为简洁起见,排除了代码 ...
1)我是否需要将donut_large
图标和其他matStepperIcon
值一起使用,而不是edit。因此请注意,在步进器reset
状态下的步骤中也显示了donut_large图标。
2)可以使用所有其他StepState
值,因为当我尝试对done
使用reset
或matStepperIcon
之类的任何其他值时,它不起作用。仅当我将值用作edit
时它才有效。根据角材料网站matStepperIcon
上的文档是
@Input('matStepperIcon') |
name: StepState | Name of the icon to be overridden.
答案 0 :(得分:0)
(来自source code)是Angular Material(更确切地说是CDK)中StepState的含义:
/** The state of each step. */
export type StepState = 'number' | 'edit' | 'done' | 'error' | string;
/** Enum to represent the different states of the steps. */
export const STEP_STATE = {
NUMBER: 'number',
EDIT: 'edit',
DONE: 'done',
ERROR: 'error'
};
这是示例代码:
<mat-vertical-stepper #stepper>
<ng-template matStepperIcon="edit">
<mat-icon>fingerprint</mat-icon>
</ng-template>
<ng-template matStepperIcon="done">
<mat-icon>done</mat-icon>
</ng-template>
<ng-template matStepperIcon="number">
<mat-icon>code</mat-icon>
</ng-template>
<ng-template matStepperIcon="error">
<mat-icon>highlight_off</mat-icon>
</ng-template>
<mat-step>
<ng-template matStepLabel>Step 1 label</ng-template>
<p>Step 1</p>
</mat-step>
<mat-step>
<ng-template matStepLabel>Step 2 label</ng-template>
<p>Step 2</p>
</mat-step>
<mat-step>
<ng-template matStepLabel>Step 3 label</ng-template>
Step 3
</mat-step>
</mat-vertical-stepper>