目前,我已经在我的项目中设置了路由。每个新用户都被重定向到:
本地主机:4200/默认路径/登录名
用户登录后,会重定向到home模块,该模块有一些用户可以导航到的子路由。
本地主机:4200/default path/home
本地主机:4200/default path/home/account
本地主机:4200/default path/home/account/profile
本地主机:4200/default path/home/dashboard
…等等。
现在,粗体部分已经设置在主模块中,不需要进一步编辑。不过,我想把default-path改成别的。
例如,每个用户可以属于三个项目之一:项目蓝、红或绿。只有在用户提交凭据并单击“登录”按钮后,此信息才可用。
登录后,我想让Routes说的是:
本地主机:4200/project blue/home
本地主机:4200/project red/home
本地主机:4200/project green/home
请记住,粗体部分不是不同的模块和不同的相关组件,它们只是我想在url中看到的常量。
目前,我在索引中的<base>标记类似于我试图编辑此属性。我得到的是:

processLoginSuccess(loginTicket): void {
    const routeName = loginTicket.baseUrl // returns 'project-red'
    let b = document.getElementsByTagName('base')[0]
    b.setAttribute('href', routeName )

    this._router.navigate(['/home']);
}

但这似乎行不通。
有什么想法吗?

最佳答案

与设置base元素的href值不同,您可以通过自定义操作提供APP_BASE_HREF来以编程方式设置基url。
这里已经讨论过:https://stackoverflow.com/a/41674411/415790

08-03 16:33