Как передать необязательный параметр Router с сохраненным URL в Angular5 - PullRequest
3 голосов
/ 23 сентября 2019

У меня есть некоторые конкретные требования в отношении работы с существующим URL.Существующие URL-адреса уже хорошо проиндексированы и используются для рекламных акций и многих кампаний, поэтому нет никаких шансов изменить их.

Существующие URL-адреса похожи на - www.xyz.com/search//65.5445/-122.56454/Listing-name/All

В то время как In Angular определяет URL-адреса, например

const routes: Routes = [
  { path: '', component: SearchpagesComponent ,
    children: [
      {
        path: 'search/:schkey/:lat/:lng/:name/:filter', loadChildren: './search/search.module#SearchModule',
        // here schkey is optinal just required blank slashes 
      }
    ]
  }
];

и в ссылке на маршрутизатор

<a [routerLink]="['/search/','','37.7749295','-122.41941550000001','San-Francisco','All']" > Goto Search Page </a>

Текущий: вышеуказанный код работает, если я нажму на определенную привязку Routerlink.его перенаправление и загружаемый компонент, но при обновлении компонента страницы не загружает и не перенаправляет на корневой URL.

Ожидается: www.xyz.com/search//37.7749295/-122.41941550000001/San-Francisco/ для компонента прямой ссылки или обновления страницы должен быть загружен.И двойные косые черты search// должны быть сохранены.

Для воспроизведения - https://stackblitz.com/edit/angular-routing-child-routes-6ydor6

Github Issue - https://github.com/angular/angular/issues/32853

1 Ответ

0 голосов
/ 23 сентября 2019

Вы можете указать несколько маршрутов для одного компонента / модуля.Один маршрут будет с этим параметром, а второй - без.

const routes: Routes = [
  { path: '', component: SearchpagesComponent ,
    children: [
      {
        path: 'search/:schkey/:lat/:lng/:name/:filter', loadChildren: './search/search.module#SearchModule',
        path: 'search//:schkey/:lat/:lng/:name/:filter', loadChildren: './search/search.module#SearchModule',
      }
    ]
  }
];

Или вы можете передать их через строку запроса, как здесь Как получить параметры запроса из URL в Angular 2? в этом случае вам не нужно указывать их в ваших маршрутахконфигурации

...