目前,我已经在我的项目中设置了路由。每个新用户都被重定向到:
本地主机: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