2017-05-16 3 views
1

私はアプリケーションに戻るボタンを持っています。 1レベルの場合Angular2、相対ナビゲーション(2つのレベル../../)

this.router.navigate(['..'], { relativeTo: this.route }); 

これは完全に動作します(結果ルートURL:http://localhost:3000/three/two/one)。 2つのレベルの背部のrelの場合。ナビゲーション

this.router.navigate(['..', '..'], { relativeTo: this.route }); 

ルータが戻って二つのレベルをナビゲートし、しかしたルートURLはhttp://localhost:3000/three/two/(正しくないテーリングスラッシュ、)のように今見えます。

私は何か間違っているのですか、それともバグでしょうか?

答えて

1

二つのレベルの場合はダウンし、これを使用します。

this.router.navigate(['../../'], { relativeTo: this.route }); 
+0

これは問題なく動作します。ありがとうございます。しかし、なぜその事件を知っていますか? this.router.navigateの場合は、セグメントの配列を与えます。実際のソリューションでは、1つのエントリを持つ配列がありますが、このエントリは意味的に2つのセグメントです。 – user3287019

+0

コマンドラインと同じように –

0

Location.back()メソッドを使用する代わりに、Location.back()メソッドを使用すると、ブラウザ履歴の最後のページに移動します。

import { Location } from '@angular/common'; 
//some othe code ...... 
//in your class 
constructor(private location: Location) {} 

//create a method to go back 
goBack() { 
    this.location.back(); 
} 

は今それにこの方法をあなたのcomponent.htmlに戻るボタンを作成してバインドします:あなたのコンポーネントで

<button (click)="goBack()" > Back </button> 
+0

私の場合、Location.back()は私の要求を満たしていません。しかし、それでもあなたに感謝します。 – user3287019

関連する問題