ユーザーが何かを編集していて、詳細を保存せずにルートを変更しようとしている場合。編集中に詳細を保存せずにルートを変更するようにユーザーに確認する
この状態で、「あなたの変更は保存されていませんか?」というユーザーを変更したいと思います。ユーザーがコンポーネントにコンポーネントを破壊するのを防ぐことができますに応じて。
私はガードを試みますが、ngOnDestroyメソッドを実行する前にガードを実行します。 どうすればいいですか?
ユーザーが何かを編集していて、詳細を保存せずにルートを変更しようとしている場合。編集中に詳細を保存せずにルートを変更するようにユーザーに確認する
この状態で、「あなたの変更は保存されていませんか?」というユーザーを変更したいと思います。ユーザーがコンポーネントにコンポーネントを破壊するのを防ぐことができますに応じて。
私はガードを試みますが、ngOnDestroyメソッドを実行する前にガードを実行します。 どうすればいいですか?
私はCanDeactivateを同じ機能のために使用しており、うまく機能しています。
複数のコンポーネントについて説明できますか? –
これを実装するすべてのルートに対して、[YourDeactivateGuard]を追加して、CanDeactivateするだけです。あなたのCanDeactivateGuardで はこのような何か: '@Injectableを() エクスポートクラスDeactivateGuardはCanDeactivate
火災は一度だけ防御します。子供の親Gaurdへのナビゲート中に –
トリガーNavigationStart
現在のルートを離れる前に仕事をするルータ。
constructor(private router: Router) {
..
this.router.events.forEach((e: any) => {
if (e instanceof NavigationStart) {
// do confirm here.
}
});
}
この目的で角度CanDeactivateを使用できます。またcanDeactivate角度
https://angular.io/docs/js/latest/api/router/index/CanDeactivate-interface.html https://blog.thoughtram.io/angular/2016/07/18/guards-in-angular-2.html
の
リンク https://rahulrsingh09.github.io/AngularConcepts/
AdvancedConcepts @作業例 - >ガードルート変更を行う方法
ブラウザの戻るボタンをクリックするとGaurdが機能しません。 –
試しているコードまたは同じコードを表示できますか? –
'エクスポートクラスEditorGuardがCanDeactivate
?ボタンをクリックしますか? – Thiagz
@Thiagzルートは、ヘッダーコンポーネントのナビゲーションバーまたはブラウザの戻るまたは進むボタンから変更できます。ユーザーが詳細を確認したり、コンポーネントの任意のフォームに保存したりしないようにするには、ユーザーにナビゲートまたは破棄する必要はありません。 –
onclickイベントを使用して必要なメッセージをトリガーしないのはなぜですか? – Thiagz