我已经实现了延迟加载模块,并且在模块的路由内部,我正在加载子组件,
喜欢这个。
const routes: Routes = [
{
path: "",
component: CustomerListComponent,
children: [
{
path: "child",
component: CustomerChildComponent
}
]
}
];
在CustomerListComponent的OnInit中,我导航到以下子组件
export class CustomerListComponent implements OnInit {
constructor(private router: Router) {}
ngOnInit() {
this.router.navigate(["customers/child"]);
}
}
我的问题是,如果我单击正在重定向/加载到该模块的菜单/按钮,则第一次可以正常工作,并且一旦加载了该模块,再次单击该菜单/按钮,就不会重新加载/重定向到该模块。像这样的'/ customers / child'子组件,它被加载为 '/ customers
所以我的问题是,我第一次可以同时看到“客户”和“孩子”组件,但是在下一次单击时,我只能看到“客户”组件。
在我的实时场景中,我在客户组件中保留了一个选项卡和一个网格,该网格应可用于所有选项卡,
在“客户”组件的路由器出口中,我正在加载子组件。
因此,在第二次单击中,我仅看到围栏,但看到的是子组件。
我已经尝试在此Stackblitz
中模拟问题在该堆叠闪电中,您会注意到,第二次单击“客户”按钮时,将从路由中删除该子项。
请帮助
答案 0 :(得分:0)
我通过在构造函数中添加以下代码来解决此问题
this.subscriptions.add(router.events.subscribe((evt: any) => {
if (evt.url === '/customers') {
this.router.navigateByUrl('/customers/child');
}
}));