angular4.x,navigationEnd.url vs navigationEnd.urlAfterRedirects

时间:2017-08-02 03:01:05

标签: angular

有关navigationEnd.urlnavigationEnd.urlAfterRedirects之间区别的任何解释或文档吗?

如果我想写一个breadcrumb组件,我应该使用哪一个?

1 个答案:

答案 0 :(得分:0)

这取决于您是否关心用户请求的URL或实际加载的路由的URL。

如果您定义任何带有重定向的路由,那么当用户导航到重定向到另一条路由的路由时,这两个值将不同。

例如,采用以下路线(路线负载与哪些组件无关,因此此处不包括):

{
  path: "",
  pathMatch: "full",
  redirectTo: "home"
},
{
  path: "home",
},

如果用户导航到/home,则navigationEnd.urlnavigationEnd.urlAfterRedirects都将是/home

如果用户导航到/,则navigationEnd.url将为/,navigationEnd.urlAfterRedirects将为/home

即使您没有实现重定向,也请尝试使用与您基于url的功能最相关的值,因为您不想在以后添加重定向时遇到奇怪的错误。 / p>