0

アクティブ化する前にルートを特定しようとしているので、ルートをキャッシュして、ログイン後にユーザーをそのルートにリダイレクトできます。

古いベータ ルーターComponentInstruction.routeNameではアクティブ化フックを呼び出すことができましたが、新しいcanActivate()ガードでは、意図したルートがアクティブ化される前にアクセスする方法がわかりません。

ユーザーがアプリのナビゲーション ボタンをクリックしたときに目的のルートを共有サービスに保存することはできますが、アドレス バーに URL を入力するとどうなるでしょうか?

4

1 に答える 1

2

angular ルーターのソース ファイルから:

export interface CanDeactivate<T> {
  canDeactivate(component: T,
   route:ActivatedRouteSnapshot,
   state:RouterStateSnapshot): Observable<boolean> | boolean;
}

ActivatedRouteSnapshotオブジェクト(ルート)にはurlプロパティがあります-別のタイプの配列、プロパティの最初のオブジェクトにpath現在のパス。

RouterStateSnapshotまた、オブジェクト(状態)の内部にはurl、現在のパスを持つ文字列プロパティだけがありますが、/プレフィックスが付いています。

これらの引数を canDeactivate メソッドに渡すだけです)

于 2016-07-15T14:56:19.163 に答える