URL-адрес RouterLink изменяется на URL-адрес по умолчанию при открытии новой вкладки - PullRequest
0 голосов
/ 13 июня 2019

URL-адрес Routerlink не должен изменяться на URL-адрес по умолчанию.

Когда я использую RouterModule.forRoot (appRoutes, {useHash: true}); он работает нормально .. но я изменил на использование Hash = false, он не работает

В HTML я использовал этот код:

<a routerLink="/applicationredirect" [queryParams]="{appId: recentMenu.applicationId}">{{recentMenu.applicationMasterName}} - {{recentMenu.applicationCode}}</a>

Страница маршрутизации:

const appRoutes: Routes = [
       .....
 {
   path: 'applicationredirect', component: ApplicationRedirectComponent,
 },
  {
path: 'home', component: HomeComponent,
   }
  ...
// otherwise redirect to home
{ path: '**', redirectTo: 'home' }
  ];
const StartupRouting = RouterModule.forRoot(appRoutes, { useHash: false });

Когда я открываю в новой вкладке,

Сначала я получил,

локальный: 4200 / applicationredirect APPID = 1084518

тогда это меняется на это,

локальный: 4200 # / дом

наконец я получил эту страницу по умолчанию

локальный: 4200 / дом # / дом

Я хочу, чтобы URL-адрес (localhost: 4200 / applicationredirect? AppId = 1084518) был открыт ..

1 Ответ

0 голосов
/ 13 июня 2019

Это нормальное поведение.Несколько моментов:

  • Если вы хотите вызывать маршруты без хэша, не указывайте второй аргумент { useHash: ... }
  • Вы не объявили сегмент applicationredirect в своемобъект конфигурации маршрутизатора, поэтому до тех пор, пока вы его не объявите, он будет возвращаться к маршруту /home, если для него установлено значение { path: '**', redirectTo: 'home' }.
  • Удалите его, если он есть в любом модуле: { provide: LocationStrategy, useClass: HashLocationStrategy }, поскольку PathLocationStrategy является стратегия по умолчанию
...