首页 文章

角度头相对routerLink

提问于
浏览
0

我试图在Angular6中创建一个全局 Headers ,带有动态的超链接列表,每个页面都有不同的超链接 . 超链接始终引用相对于当前URL的某个页面 . 但是routerLink-s在全局标头中不起作用 . 这意味着,当我在app根头中有一个routerlink时,我尝试 Build 当前正在使用的懒惰加载模块的相对链接,该模块当前正在使用,并且我已经加载了一个菜单 .

意思是,如果我在URL上

http://example.com/company/8/employee

全局菜单包含超链接

<a routerLink="./profile">

然后单击该routerLink,将带我到example.com/profile . 它充当绝对联系 . 现在,如果在同一页面上,我将相同的代码插入到作为主体加载的雇员组件中,它的工作方式不同,它将重定向到我 .

http://example.com/company/8/employee/profile

我不明白,为什么它不会将全局路由器url状态作为相对性基础,而是尝试从路由器树中的根(其中标头为 - )进行路由 .

当相对URL-s在那里不能正常工作时,如何在Angular的头文件中管理全局相关菜单?

2 回答

  • 0

    由于 ./routerLink 的前缀,因此它会将当前URL视为其重定向的基础 .

    ./ 只是一个相对路径,所以如果你把 <a routerLink="./profile"> 放在 app.component 中,它会重定向到 example.com/profile 如果你把相同的链接放在 employee.component 中,它会重定向到 http://example.com/company/8/employee/profile

    如果你需要绝对路径重定向,只需添加 / (例如: <a routerLink="/profile"> ),这样无论组件如何,它都会重定向到 example.com/profile

  • 1

    几个星期后我找到了答案 .

    您可以将relativeTo传递给路由器,这有助于这些情况 . 您可以转发另一个组件ActivatedRoute并将其用作相对性基础 .

    this._router.navigate(['../../method'], {relativeTo: this._activatedRoute});
    

相关问题