問題タブ [angular-route-guards]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 角度:RouteGuardのターゲットルートに関連してrouter.navigate()を呼び出す方法は?
Angular 4 で開発された既存のプロジェクトがあります。ユーザー権限に基づいて特定のルートへのアクセスを制御する必要があります。単純化されたルート構成は次のようになります。
ここで、へのアクセスを制御したいと思いますwww.myWeb.com/myApp/product/categoryA
。ユーザーに十分な権限がない場合、ユーザーは にリダイレクトされ... /product/CategoryB
ます。CanActivate
これを行うために RouteGuard を作成しました。ガード クラスは次のようになります。
すべて正常に動作しますが、次のようにターゲット ルートに相対的にリダイレクトする必要があります。
残念ながら、オブジェクトrelativeTo
のみを受け入れActivatedRoute
、私が持っているのはActivatedRouteSnapshot
andだけですRouterStateSnapshot
。ターゲット ルート (この場合はcategoryA )に対してナビゲートする方法はありますか? どんな助けでも本当に感謝します。
ノート:
- いくつかのルート ガードを追加する以外に、ルート構成を変更できません。
this.router.navigateByUrl
を使用して探しているわけではありませんstate.url
。使いたいですrouter.navigate([...], { relativeTo: this-is-what-need})
。
angular - angular ルート ガードは、Observable に対して間違った値を返します
ルートガードを使用して、ルートにアクセスする前にログインしたユーザーかどうかを確認しようとしています。そのため、ユーザーがログインしている場合はreplaySubjectにtrueが含まれています。ユーザーがログインしているかどうかを確認するためにメソッドを呼び出すと、値はtrueになりますが、canActivateメソッド内で同じメソッドを呼び出すと、値は空になるため、そうします何も返しません。
メソッドcanActivate
:
メソッドisLoggedIn
:
件名loggedIn
:
リンク:
checkLogin
方法:
ルーティング モジュール:
角度バージョン: 5.2.8、角度ルーター バージョン: 5.2.8
angular - ルート ガード: サーバーから送信されたリストに基づいてルート ガードを真にする方法は?
サーバーがいくつかのパラメーターを送信した場合にのみ、コンポーネントにアクセスできるようにするルートガードをアプリで使用しようとしていました。
これは、サーバーが私に送信できるパラメーターのリストです (すべてのパラメーターが毎回送信されるわけではありません)。
私のルートガード:
パラメータの一部が送信されているかどうかにかかわらず、それが本当であるかどうかをどのように判断できますか? userActions=[] は正しいですか? たとえば、AGREEMENTS_VIEW PROSPECTS_VIEW が送信されると、「true」になるはずです。
また、これは大丈夫ですか?
HTTP 投稿: