首页 > 解决方案 > Angular 7 + 路由 + 差异

问题描述

在我的 Angular 7 代码中,我在路由模块中有以下内容:

{
    path: 'campaigns', component: PortalComponent, canActivate: [AuthGuard], children: [
        { path: '', component: CampaignListingComponent },
        { path: 'details/:id', component: CampaignDetailsComponent },
        { path: 'create', component: CreateCampaignComponent      }
    ]
}

在portalComponent,ngOnInit()中,我有以下内容:-

this.routerSubs = this.activatedRoute.params
.subscribe((params) => {
    console.log('router url=', this.router.url);
    setTimeout(() => {
        this.routingService.setbreadCrumbUrl(this.router.url);
    });
});

this.breadCrumbSubs = this.routingService.breadCrumbEmitter
.subscribe((breadcrumb) => {
    setTimeout(() => {
        this.breadcrumbEvent = breadcrumb;
        console.log('breadcrumb event=', this.breadcrumbEvent );
    });
});

this.router.navigate(['/campaigns/create'])被调用时,我发现有时ngOnInit()没有调用portalComponent,而是直接调用CreateCampaignComponent。为什么会发生这种情况,根据路由模块,PortalComponent然后,CreateCampaignComponent应该被调用?

标签: angularangular-routingangular7

解决方案


推荐阅读