基于外部条件的角度路由

时间:2021-04-08 14:54:47

标签: angular

我有一个主路由文件,其中包含如下路由

MainRoutes.ts

{
    path: 'bllicenses',
    loadChildren: () => import('../grids/portfolios/portfolios.module').then(m => m.PortfoliosModule)
},
{
    path: 'reports',
    component: RedirectComponent
},
{
    path: 'advportfoliosearch',
    loadChildren: () => import('../grids/portfolios/advportfoliosearch/advportfoliosearch.module').then(m => m.PortfolioSearchModule)
}

而且,在重定向组件中,我们正在做一些条件重定向,如下所示

重定向组件.ts

if (!this.portfolioID) {
    if (this.route.url.includes('/reports')) {
        this.redirectService.redirectToPega(redirectObj);
    } else {
        this.navigateService.redirectToPortfolio();
    }
}

在上面的部分代码中,如果 url 包含 /reports,我们将根据 portfolioID 条件重定向到外部 pega url。 如果portfolioID 不存在,它将重定向到角度路线之一。以下是我们导航服务代码的一部分

NavigateService.ts

public redirectToPortfolio() {
    this.router.navigate(['/bllicenses']);
}
public redirectToAdvSearch() {
    this.router.navigate(['/advsearch']);
}

所以,问题是我在 angular 应用程序中创建了一个新的路线和页面 /advsearch,它在导航时应该像 /reports 一样。如果 portfolioID 不存在,它应该 redirectToPortfolio 这里的问题是 /reports 是外部链接,/advsearch 是角度路线。

如果我在现有投资组合 ID if 条件下的 RedirectComponent 中添加如下内容

if (!this.portfolioID) {
    if (this.route.url.includes('/reports')) {
        this.redirectService.redirectToPega(redirectObj);
    } else if (this.route.url.includes('/advsearch')) {
        this.redirectService.redirectToAdvSearch();
    } else {
        this.navigateService.redirectToPortfolio();
    }
}

我需要在主路由文件中给出像 component: RedirectComponent 这样的错误,因为它是一个角度模块。我真的很困惑。任何人都可以帮助解决这个问题。如果有什么不清楚的,请评论。我可以解释。谢谢。

0 个答案:

没有答案