2017-02-10 3 views
1

角2では、ブラウザを戻すより良い方法があります。 例:戻るをクリックすると、確認ページが表示されたら確認ダイアログボックスが表示され、ページXにリダイレクトされている場合は同じページに留まります。角を2に戻して制御するブラウザ

location.onPopState()を使用すると、最終的にバックリダイレクトが行われるため、ブラウザの完全なコントロールはできません。

上記の動作はauthguardを使用して行うことができますか?angular2ルーティングのcanActivate?

答えて

1

あなたが探しているのはcanDeactivateガードです。ビクターは彼の本でこれをこう書いています:

canDeactivateガードは他とは異なります。その主な目的は、許可を確認することではなく、 の確認を求めることです。これを説明するために、ユーザーが保存されていない変更を含む作成ダイアログを閉じたときに、確認を依頼するようにアプリケーションを変更しましょう。

彼はその後、SaveChangesガードを行う方法を共有することになります:

canDeactivate(component: ComposeCmp, route: ActivatedRouteSnapshot, 
    state: RouterStateSnapshot): Promise<boolean> { 
     if (component.unsavedChanges) { 
     return this.dialogs.unsavedChangesConfirmationDialog(); 
     } else { 
     return Promise.resolve(true); 
     } 
    } 

私は非常に本を買ってお勧めします。 https://leanpub.com/router

関連する問題