1

app.routes に 4 つのルートがあります。

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

export const pageRoutes: Routes = [
  {path: '', redirectTo: 'home', pathMatch: 'full'},
  {path: 'home', component: HomeComponent},
  {path: 'transaction', loadChildren: './app/transaction.module#TransactionModule'},
  {path: 'evidence', loadChildren: './app/evidence.module#EvidenceModule'}
];

@NgModule({
  imports: [RouterModule.forRoot(pageRoutes)],
  exports: [RouterModule],
})
export class AppRoutingModule {}

app.routes では、特定の設定はしていませんLocationStrategy。ルートのためにtransaction、ユーザーがページを更新することを許可しない angular2 のデフォルトの PathLocationStrategy を使用したいと考えています。

しかし、evidenceルートについては、実際にはユーザーがページを更新できるようにしたいと考えています。そこで、ここで HashLocationStrategy を使用したいと思います。

これはevidence-routing.module

    @NgModule({

          imports: [RouterModule.forChild([
            {path:':sessionId', component: EvidenceComponent}
            { path: '**', redirectTo: '/404' },
            { path: '404', component: PageNotFoundComponent}
          ])], 
          exports: [RouterModule],
          providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}]

    })
    export class EvidenceRoutingModule {}

providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }]内部に追加しevidence-routing.moduleて HashLocationStrategy を有効にし、このルートにのみ適用したかったのです。

しかし、そこに配置すると、アプリケーション全体が HashLocationStrategy を採用し、トランザクション ルートでも機能します。

これを処理するための良い解決策が見つかりませんでした。

この問題に関するアドバイスはありますか?

どうもありがとう!

4

1 に答える 1