0

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

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”还是来自另一个应用程序?我一直在寻找类似的问题,但没有一个适合我的需要。

提前致谢

4

1 回答 1

1

我认为通过使用相同的根,您将无法做到这一点,替代方案可能是

使用查询参数

当您更改分页器上的根时,单击添加一些查询参数,例如。如果您要重定向,router.navigate(['yourroute'])则添加参数router.navigate(['yourroute'],{queryParams:{orgin:'supply1'}}),然后获取查询参数,例如

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从您的分页器导航到

于 2019-10-11T12:35:07.443 回答