打开新标签页时,RouterLink网址更改为默认网址

时间:2019-06-13 09:22:41

标签: angular angular-routerlink

Routerlink网址不应更改为默认网址。

当我使用RouterModule.forRoot(appRoutes,{useHash:true});它的工作正常..但是我改为useHash = 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 });

当我在新标签页中打开时,

首先我得到了

localhost:4200 / applicationredirect?appId = 1084518

然后将其更改为

localhost:4200#/ home

最后我得到了这个默认页面

localhost:4200 / home#/ home

我想打开(localhost:4200 / applicationredirect?appId = 1084518)网址。

1 个答案:

答案 0 :(得分:0)

这是正常现象。几点:

  • 如果您要调用没有散列的路由,请不要提供第二个参数{ useHash: ... }
  • 您没有在路由器配置对象中声明applicationredirect段,因此在声明它之前,它会回退到/home路由,因为您将其设置为{ path: '**', redirectTo: 'home' }。 / li>
  • 如果在任何模块中将其删除,请删除它:{ provide: LocationStrategy, useClass: HashLocationStrategy },因为PathLocationStrategy为default strategy