私のapp.routesには4つのルートがあります。角度:PathLocationStrategyを使用するルートもあれば、HashLocationStrategyを使用するルートもあります。
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
ルートでは、angle2のデフォルトのPathLocationStrategyを使用したいので、ユーザーはページを更新できません。
しかし、evidence
ルートの場合、私は実際にユーザーがページを更新できるようにしたいと考えています。ですから、ここではHashLocationStrategyを使いたいと思います。
これは私がHashLocationStrategyを有効にしてのみ、このルートに適用するevidence-routing.module
内providers: [{ provide: LocationStrategy, useClass: 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 {}
です。
しかし、一度それを置くと、アプリケーション全体がHashLocationStrategyを採用し、トランザクションルートにも機能します。
私はこれを処理するための良い解決策を見つけることができませんでした。
この問題に関するアドバイスはありますか?
多くのありがとうございます!