canDeactivate в Angular2+ перейти на два шага назад во второй раз назад нажмите

Я реализовал CanDeactive Guard в последней версии Angular2 +,

Но всякий раз, когда я нажимаю кнопку "Назад" в браузере, в первый раз он позволяет мне оставаться на той же странице (это нормально), но во второй раз он идет на два шага назад.

это мой код:

@NgModule({
imports: [
    CommonModule,
    RouterModule.forRoot([
      {
        path: 'home',
        component: HomeComponent,
        canDeactivate: [HomeGuard]
      }
    ])
  ],
  declarations: [
    HomeComponent
  ],
  providers: [HomeGuard],
  exports: [RouterModule]
})
export class HomeModule {
}

Домашний компонент

@Component({
  template: '<p>home works!</p>'
})
export class HomeComponent {
  public counter = 2;
}

И HomeGuard

@Injectable()
export class HomeGuard implements CanDeactivate<HomeComponent> {

  canDeactivate(component: HomeComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot,
                nextState?: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
    component.counter--;
    return component.counter === 0;
  }
}

Я просто хочу вернуться только на один шаг.

0 ответов

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