当前位置:  开发笔记 > 前端 > 正文

如何在Angular 2路由中动态更改基本URL?

如何解决《如何在Angular2路由中动态更改基本URL?》经验,为你挑选了1个好方法。

目前,我在我的项目中设置了路由.每个新用户都被重定向到:

本地主机:4200 /默认的路径/登录

一旦用户登录,它们就会被重定向到主模块,主模块有一些用户可以导航到的子路由.

localhost:4200/default-path/home
localhost:4200/default-path/home/account
localhost:4200/default-path/home/account/profile
localhost:4200/default-path/home/dashboard

... 等等.

现在,粗体部分已在主页模块中设置,无需进一步编辑.但是,我想换个default-path别的东西.

比如说,每个用户都可以属于三个项目之一:项目蓝色,红色或绿色.只有在用户提交凭据并点击登录按钮,才能使用此信息.

登录后我想要的路线是:

localhost:4200/project-blue/home
localhost:4200/project-red/home
localhost:4200/project-green/home

请记住,粗体部分不是具有不同关联组件的不同模块,它们只是我想在URL中看到的常量.

目前,我在索引中的标记就像我正在尝试编辑此属性.我得到的是:

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

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

但这似乎不起作用.

有任何想法吗?



1> Krishnan..:

您可以通过提供自定义操作来以编程方式设置基本URL,而不是设置base元素的hrefAPP_BASE_HREF.

这已在此处讨论过:https://stackoverflow.com/a/41674411/415790

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有