2017-09-02 12 views
0

私は、ルーティング、このタイプのモデルがある角度2ページがあります:私は私のImportantDocumentsComponentでPDFファイルを開いて、その後を取得しようとすると角度2リダイレクトURLのページに戻ったときに

const routes: Routes = [ 
    { path: '', pathMatch: 'prefix', redirectTo: 'announcement' }, 
    { path: 'announcement', component: AnnouncementComponent }, 
    { path: 'important-documents', component: ImportantDocumentsComponent }, 
    { path: 'reservations-and-orders', component: ReservationsAndOrdersComponent}, 
    { path: 'contact', component: ContactComponent }, 
    { path: '**', redirectTo: 'announcement'} 
]; 

をブラウザの戻るボタンを押して前のページに戻ると問題が発生します。このページは、このサーバーに要求されたURLが見つからなかったことを通知します。私は実際に、角度ページのみ1つのURLを持っているので、これが起こることを想定し、ブラウザがページのURL +パスをロードしようとしています。私はこれでその周りに行くことができると思った:

{ path: '**', redirectTo: 'announcement'} 

が、トリックを行うようには見えませんでした。

私は戻って行くときに、ブラウザが正しいURLにリダイレクトなるようにどのように私は、起きてからのURLこのタイプのエラーを防止することができることを知っていただきたいと思います。

すでに事前に感謝します。

+0

だけで無効なパスのために必要なリダイレクトした場合、このようにしてみてください - '{パス「**」、コンポーネント:AnnouncementComponent}あなたのスニペットで –

+0

は動作しませんでした示して'ただ、最後のパスとして置きます。それはルーティングモジュールを破って、AnnouncementComponentへのすべてのパスを再ルーティングしました。 – Leero11

答えて

2

ロケーションサービスと「戻る」機能は、作業を行う必要があります。ロケーションサービスは、Angular 2の旧バージョンの "angular2/router"からインポートする必要があります。新しい "@ angle/common"の場合。以下はフォームに戻るボタンがある場合です。バックボタンの場合

import {Component} from '@angular/core'; 
import {Location} from '@angular/common'; 


@Component({ directives: [ROUTER_DIRECTIVES] }) 
@RouteConfig([ 
    {...}, 
]) 
class AppComponent { 
    constructor(private _location: Location) { 
    } 
    backClicked() { 
     this._location.back(); 
    } 
} 

ウェブブラウザの使用PlatformLocationをクリックして、あなたはonPopStateを定義することができます。

this.location.onPopState(()=>{ 
    this.location.back(); 
}); 
+1

ありがとう!これはトリックを行うようだ。 – Leero11

関連する問題