私はCanDeactivateガードを作成しようとしています。ルートから離れてナビゲートするときにユーザーに「変更を保存」するよう促します。除外したいルートがいくつかあります(ユーザーがタブを切り替えても、新しいアイテムを選択しないと言うことができます)。私は、何らかのナビゲーションサービスを使わずに目的地のURLを取得し、そこに完全なURLを保持する方法を理解することに本当に苦労しています。ここで私の署名は無効にすることができますAngular2 Guardで目的地のURLを取得するにはどうすればよいですか?
// This is what handles the deactivate
public canDeactivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
'route'オブジェクトと 'state'オブジェクトのすべてには、前のURLと宛先URLに関する情報が含まれていません。
私はあなたがルータのイベントを購読することができます
this._router.navigate(['/clients', this.selectedClient.id, page]);
あなたは、おそらくそれは設計上の欠陥だった、正しいです。私は、もう少し彼らと一緒に作業した後、ガードをよく理解していると信じていますが、コンポーネントツリーとルーティングされた子供に基づいてどのようにトリガするかはまだ分かりません:) – ZeroCool