2017-03-24 8 views
0

私のng2アプリでは、this.location.back()で戻るボタンがあります。基本的にWebブラウザの戻るボタンのように機能します。しかし、Webブラウザの戻るボタンと同じように、ng2アプリが起動した時点に戻るときに戻るボタンがバック機能を実行せず、戻るボタンがグレーアウトされるようにしたいと思いますか?Angular2 location.back()を使用してアプリでURLに停止する方法が開始されましたか?

答えて

1

角度RC4ルータでは、単純に結合[disabled]属性に小切手を追加router.url

constructor(private router:Router) { console.log(this.router.url); } 

を呼び出すことにより、現在のルータの状態にアクセスすることができます。

<button [disabled]="this.router.url === '/somePath'">Back</button> 

編集:

あなたが呼び出して、現在のウィンドウの履歴をアプリケーションがナビゲートされる前に、ボタンを無効つかむしたい場合:アプリケーションが初期化され

initLength = window.history.length

ここで、戻るボタンが呼び出すたびに呼び出すことができるサービスをいくつかのサービスで作成し、現在のwindow.history.length == initLengthのときに無効にします。

someBackMethod() { 
    if(window.history.length == initLength) { 
     someBool = false; 
    } 
    else { 
     window.history.back(); 
     } 
    } 

最後に、[disabled]属性バインディングを設定します。

<button [disabled]="someBool">Back</button> 
+0

ヒントをお寄せいただきありがとうございます。しかし、ユーザーの実際のホームボタンを押してアプリのスタートアップパスを取得する可能性があるため、スタートアップパスが数回続いている可能性があるため、タブのブラウザ履歴に似たものが必要になります。この回答の解決策は、パスが一致したときに戻るボタンが早すぎると停止することがあります。 – ZZZ

+0

私はあなたの必要性を反映する答えを編集しました。説明をありがとう。 –

関連する問題