определить местонахождение пользователя - PullRequest
0 голосов
/ 11 октября 2019

Предположим, у нас есть приложение с маршрутизатором, настроенным следующим образом:

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' , и мы сможем переключаться между идентификаторами с помощью paginator.

Мы хотим получить доступ к этому SupplyComponent вдвумя способами: из местоположения '/ supply' и из другого приложения.

В чем проблема? Если мы хотим перейти к '/ supply / id_3' из другого приложения, нам нужно использовать ActivatedRoute , взять этот идентификатор и получить информацию из API. Но мы показываем только информацию id_3 , а не всю информацию о Supply2.

Есть ли способ «обнаружить», если пользователь пришел из '/ supply' или из другого приложения? Я искал похожие вопросы, но ни один из них не соответствует моим потребностям.

Заранее спасибо

1 Ответ

1 голос
/ 11 октября 2019

Я думаю, что используя тот же корень, вы не сможете сделать так, чтобы альтернативы могли быть

с использованием параметров запроса

, когда вы меняете корень в paginator, нажмите кнопку Добавить. некоторые параметры запроса, например, например, если вы перенаправляете как 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 с вашего пагинатора

...