Использование деактивации защиты с mat-stepper не обнаруживает несохраненные шаги повторного посещения

Я использую Angular 8. В своем приложении я использую mat stepper и использую его таким образом.

 <mat-vertical-stepper #stepper (selectionChange)="stepperSelectionChanged($event)" [linear]="isLinear">
        <mat-step *ngFor="let menu of displayMenus; let i = index" [label]="menu.title">
          <router-outlet *ngIf="i === selectedStep"></router-outlet>
        </mat-step>
 </mat-vertical-stepper>

Здесь массив displayMenus содержит определенные маршруты, которые необходимо загрузить. содержимое из компонентов загружается правильно, и степпер тоже работает правильно. На каждом этапе я загружаю компоненты,formGroup. Я используюcanDeactivate()чтобы обнаружить несохраненные изменения, и у меня есть четыре шага. Я также использую линейное свойство в матовом степпере. Итак, после сохранения шага 1, он переходит к шагу 2. Если я сделаю изменения и попытаюсь вернуться к 1-му шагу, обнаружение несохраненных данных сработает. Но если я снова изменю данные шага 1 и нажму на любой другой маршрут, обнаружение изменений (canDeactivate()метод) не запускается. Я заметил следующее: как только я сохраню данные, перейду к следующему шагу и вернусь, новые изменения не считаются несохраненными. Пожалуйста, помогите мне, у кого-нибудь есть представление об этом.

0 ответов

Другие вопросы по тегам