我有一个组件:
-
将 router-outlet 加载到视图中
-
在其构造函数中:订阅已初始化的ngrx Store veriable
-
在其构造函数中:根据可验证的相关子路径/子组件进行控制 .
ReRoutingComponent.ts
export class ReRoutingComponent implements OnInit {
HOF$:Observable<any>;
HOF:any;
isUHC:boolean;
constructor(
private _store:Store<any>,
private _router:Router,
private _route:ActivatedRoute
) {
this.HOF$ = _store.select(from_costumer.getHOF);
this.HOF$.subscribe((v:any)=> {
this.HOF = v;
this.isUHC = this.HOF['isUHC'];
if(this.isUHC) {
this._router.navigate(['../uscostumer'], {relativeTo: this._route});
}else {
this._router.navigate(['../globalcostumer'], {relativeTo: this._route});
}
});
}
ngOnInit() {
}
}
因此,路径 domain.com/site/providers 默认路由到 domain.com/site/providers/globalcostumer ,如果分配了ngrx变量,则路由到 domain.com/site/providers/uscostumer .
我使用简单的 [router-link] 指令导航到 domain.com/site/providers ,而不是通过 _router.navigate .
The Problem
- 当我使用相同的 router-outlet 链接导航回 ReRoutingComponent.ts 或 domain.com/site/providers 时, ReRoutingComponent.ts 构造函数未运行,组件未重新加载且ngrx订阅不会重新路由到相关组件 .
1 回答
您可以使用
ngOnInit
生命周期钩子来执行这些操作,并且每次路由到它时都会调用它 .