目前,我在我的项目中设置了路由。每个新用户都被重定向到:
localhost:4200/default-path/login
一旦用户登录,他们将被重定向到 home 模块,该模块有一些用户可以导航到的子路由。
localhost:4200/default-path/home
localhost:4200/default-path/home/account
localhost:4200/default-path/home/account/profile
localhost:4200/default-path/home/dashboard
...等等。
现在,粗体部分已经在home模块中设置好了,不需要再编辑了。但是,我想更改 default-path
到别的地方。
比如说,每个用户都可以属于三个项目之一:项目蓝色、红色或绿色。此信息仅在用户提交其凭据并点击登录按钮后可用。
我希望路由在登录后说的是:
localhost:4200/project-blue/home
localhost:4200/project-red/home
localhost:4200/project-green/home
请记住,粗体部分不是具有不同关联组件的不同模块,它们只是我希望在 URL 中看到的常量。
目前,我的 <base>
索引中的标签类似于 <base href='/'>
我正在尝试编辑此属性。我得到的是这样的:
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。
关于html - 如何在 Angular 2 路由中动态更改基本 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41632516/