Не выполняйте навигацию по Nx при переходе с определенных маршрутов - PullRequest
0 голосов
/ 29 марта 2019

В моем приложении Angular я использую NgRx и Nx's Router Navigation:

@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 имеет <router-outlet></router-outlet>, чтобы показатьодин из 3 компонентов A_Component, B_Component или C_Component.Поэтому, когда пользователь переходит к configurator/, FooComponent показывает A_Component и срабатывает SampleAction.Это нормально.

Но: Когда пользователь переходит с configurator/b или configurator/c обратно на configurator, SampleAction должен не быть запущенным,

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

...