Я сталкиваюсь с этой досадной проблемой с Angular: я переопределил иконки шагового режима, добавив к provides
страницы:
provide: STEPPER_GLOBAL_OPTIONS, useValue: {displayDefaultIndicatorType: false, showError: true}
Это страница HTML (просто часть состоит из 7 элементов (скопировано / вставлено):
<mat-horizontal-stepper>
<!-- AREA -->
<mat-step label="Step 1" state="area">
<p>Put down your phones</p>
<div>
<button mat-button matStepperNext>Next</button>
</div>
</mat-step>
<!-- QUESTION -->
<mat-step label="Step 2" state="question">
<p>Socialize with each other</p>
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button matStepperNext>Next</button>
</div>
</mat-step>
<!-- MODE -->
<mat-step label="Step 3" state="mode">
<p>Socialize with each other</p>
<div>
<button mat-button matStepperPrevious>Back</button>
<button mat-button matStepperNext>Next</button>
</div>
</mat-step>
...
<!-- Icon overrides -->
<!-- AREA -->
<ng-template matStepperIcon="area">
<mat-icon>gavel</mat-icon>
</ng-template>
<!-- QUESTION -->
<ng-template matStepperIcon="question">
<mat-icon>contact_support</mat-icon>
</ng-template>
<!-- MODE -->
<ng-template matStepperIcon="mode">
<mat-icon>forum</mat-icon>
</ng-template>
...
Как видите, это всего лишь пример, который вы можете найти в Angular 9 документации
Хорошо, теперь позвольте мне представить проблему с несколькими изображениями:
![First step, create icon instead of gavel icon](https://i.stack.imgur.com/yrhxZ.png)
![Second step, same situation of first one. create icon instead of contact_support icon](https://i.stack.imgur.com/ARaZx.png)
![...and of course, same annoying behaviour](https://i.stack.imgur.com/sdMTO.png)
Просто посмотрите на круги, они должны иметь свои собственные значки (gavel, constact_support, forum). Но когда я нахожусь на одном из этих шагов, он заменяет значок на другой, а точнее на create icon .
Теперь, если я вернусь ко второму шагу, в по кругу появляется правильный значок, без этой надоедливой перезаписи:
![enter image description here](https://i.stack.imgur.com/KmDFT.png)
Я уже пробовал:
- Установить
[completed]=false
в компоненте <mat-step>
, но он просто убирает значок галочки в предыдущих кругах - Переопределяет значок:
<ng-template matStepperIcon="edit">
<mat-icon>gavel</mat-icon>
</ng-template>
Но это бесполезно, поскольку он просто переопределяет значок, так что проблема все еще существует. Я также пытался оставить <mat-icon></mat-icon>
пустым, но, конечно, он просто оставляет пустой значок в круге.
То, чего я пытаюсь добиться, это обойти эту "автоматическую перезапись" c. Есть идеи?