Не выполнять навигацию маршрутизатора Nx при переходе с определенных маршрутов

#angular #angular2-routing #ngrx #ngrx-effects #nrwl

#angular #angular2-маршрутизация #ngrx #ngrx-эффекты #nrwl

Вопрос:

В моем приложении Angular я использую NgRx и навигацию маршрутизатора Nx:

 @Effect() navigation$ = this.dataPersistence.navigation(A_Component, {
    run: (a: ActivatedRouteSnapshot) => {
        const id = a.params.id;
        if (id) {
            return new SampleAction(State.VIEW, id);
        } else {
            return new SampleAction(State.NEW);
        }
    },
    onError: (a: ActivatedRouteSnapshot, e: any) => {
        console.error(e);
        return null;
    },
});
  

Мои маршруты определены следующим образом:

 // ...
RouterModule.forChild([{
        path: 'configurator',
        component: FooComponent,
        canActivate: [AuthGuard],
        children: [{
            path: '',
            component: A_Component
        }, {
            path: 'b',
            component: B_Component,
        }, {
            path: 'c',
            component: C_Component,
        }, ],
    },
    {
        path: '',
        pathMatch: 'full',
        redirectTo: 'configurator'
    },
]),
// ...
  

FooComponent имеет a <router-outlet></router-outlet> для отображения одного из 3 компонентов A_Component , B_Component или C_Component .
Поэтому, когда пользователь переходит к configurator/ , FooComponent отображается A_Component и SampleAction запускается. Это нормально.

Но: когда пользователь переходит из любого из них configurator/b или configurator/c обратно в configurator , SampleAction не следует запускать.

Как я мог это сделать?