检测哪些是用户的来源位置

detect which are the origin location of user

假设我们有一个路由器配置如下的应用程序:

export const routes: Routes = [
  { 
    path: 'supply', component: SupplyListComponent
  },
  {  
    path: 'supply/:id', component: SupplyComponent 
  }
];

每个供应品内部可以有一个或多个标识符。在 Supplycomponent 中,我们有一个分页器,在卡片上一个接一个地显示每个供应 ID,每次用户单击下一个按钮时都会更改 URL。 示例:

{
  "supply1": [id_1],
  "supply2": [id_2, id_3, id_4]
}

如果我们按 Supply1,我们会转到 '/supply/id_1'。如果我们推送 Supply2,我们将推送到 '/supply/id_2',我们可以使用分页器在 ID 之间切换。

我们想通过两种方式访问​​这个 SupplyComponent:从位置 '/supply' 和从另一个应用程序。

有什么问题吗?如果我们想从另一个应用程序转到 '/supply/id_3',我们需要使用 ActivatedRoute,获取该 id 并检索信息来自 API。但是我们只显示了id_3的信息,并没有显示Supply2的所有信息。

如果用户来自 '/supply' 或其他应用程序,有什么方法可以 'detect' 吗?我一直在寻找类似的问题,但 none 符合我的需要。

提前致谢

我认为使用相同的 root 将无法做到,替代方案可能是

使用查询参数

当您在分页器上更改根时,单击为 eg.if 添加一些查询参数,您将像 router.navigate(['yourroute']) 一样重定向,然后添加像 router.navigate(['yourroute'],{queryParams:{orgin:'supply1'}}) 这样的参数,然后获取像 [=] 这样的查询参数16=]

this.activatedRoute.queryParams.subscribe(data=>{
if(data['orgin']){
//request is from your internal app
}
})

使用多条路线

再添加一个具有相同组件的根并添加路由数据

  {  
    path: 'supply1/:id', component: SupplyComponent ,data:{origin:'supply1'}
  }

并在

这样的组件中获取数据
this.activatedRoute.data.subscribe(data=>{
    if(data['orgin']){
    //request is from your internal app
    }
    })

然后从您的分页器

导航到suply1/yourid