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 を採用し、トランザクション ルートでも機能します。
これを処理するための良い解決策が見つかりませんでした。
この問題に関するアドバイスはありますか?
どうもありがとう!