在我的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
具有<router-outlet></router-outlet>
,以显示3个组件A_Component
,B_Component
或C_Component
之一。
因此,当用户导航到configurator/
时,FooComponent
显示A_Component
并触发SampleAction
。很好。
但是:当用户从configurator/b
或configurator/c
导航回到configurator
时,SampleAction
应该不被触发。
我该怎么办?