Для этого вы можете сделать следующее.
Отключить кнопку добавления:
Добавьте ссылку на шаблон #verticalStepper
на свой степпер
<mat-vertical-stepper #verticalStepper
Добавить ссылку на шаблон #addButton
на шаг вашей кнопки
<mat-step #addButton>
Затем сравните шаг кнопки с выбранным степпером и отключите кнопку, если они не совпадают.
<button mat-flat-button [disabled]="verticalStepper.selected != addButton" (click)="addItem()">
Используйте [completed]
для контроля завершения шага:
Добавьте шаблон ref #step
в ваш цикл *ngFor
, тогда, если step.completed
передаст значение true на вход [completed]
.
<mat-step #step *ngFor="let step of newSteps; let i = index" [completed]="step.completed">
Тогда в вашем (change)
наборе событий step.completed = true
(change)="changeStep($event, i); step.completed = true">
Изменить значок редактирования
Добавьте следующее, чтобы заменить значок редактирования на пошаговый указатель.
<ng-template matStepperIcon="edit" let-index="index">
{{index + 1}}
</ng-template>
Stackblitz
https://stackblitz.com/edit/stepper-dynamic-qxh5qf?embed=1&file=src/app/app.component.html