私のプロジェクトでは2人のガードがいます。 AuthGuardとPermissionGuardです。 AuthGuardを最初に実行する必要があり、解決した時点で、本当にpermissionGuardが起動しますが、このガードは並行して実行され、permissionGuardはうまく動作しません。この問題のために私が使用したのは、私が許可ガードでAuthGuard CanActivateメソッドを呼び出したことですが、これを行うにはかなり良い方法があると思います。別のガードが解決された後、Angular2がガードされる
9
A
答えて
2
私は数週間前と同じ状況にあったので、これを達成するためにルート定義オブジェクトの属性data
を使用してややハックな解決策を書くことにしました。
アイデアがで次々にMainGuard.canActivate
関数内で警備員の配列を使用してデータ属性を読んであろう(例えばguardsList
を)(MainGuard
それを呼び出すことができます)と(guardsList[i].canActive
を呼び出すことで)それらを実行独自のガードを定義することですループ。所定のガードでcanActivate
に電話するには、Injector
アプリを利用する必要があります。
あなたが購読して完了を待つ必要があるとして、すべて1つのguardsList
配列の下Observable
、Promise
、プレーンboolean
警備員をサポートしたいとき、それは私が実現してきたなど、
を少し複雑になります
const appRoutes: Routes = [
{
...
canActivate: [SequentialGuards],
data: { GUARDS_SEQ: [Guard1, Guard2, Guard3] }
...
}]
関連する問題
- 1. Angular2ガードとルーター
- 2. angular2:ガードをCanDeactivateする
- 3. ため-理解、ガードとRandomAccessFile.readLine
- 4. ガード
- 5. Rubocopガード句のジレンマ - 不要なラインが長すぎるガード句
- 6. 角度2のパラメータ化されたルートパスの子ルートで '解決'または 'ガード'をトリガーできません
- 7. std :: shared_ptr(unique_ptr)でガードされたメモリを変更する方法
- 8. else文のガードはコンパイルされません: '|'入力時の解析エラー
- 9. ガードの苦情
- 10. ガードmallocのは
- 11. FireProise.all()のネストされた約束がすべて解決された後
- 12. ジェネリックのTypescript型ガードは強制されません
- 13. 式が未使用の関数に解決され、未解決の識別子 'ディスパッチ'エラーが使用される
- 14. ガードはラムダ
- 15. symfony3ガードとログインフォーム
- 16. Laravelガードとは?
- 17. 否定ガード
- 18. エリクシルのis_moduleガード句
- 19. Laravelは認証ガードが[]に定義されていないことを言う
- 20. 複数の条件がガード・ステートメントのスウィフト
- 21. UIルータのネストされた解決が解決しない
- 22. これが解決されている
- 23. Angular2:複数のコンポーネントに同じガードを付ける方法
- 24. 子供ガード:私は角のdocのような場所で子供ガードを入れてみました
- 25. Xcode - スクリーブル、ガードエッジ、ガードmalloc
- 26. gruntjs対yeoman対ガード
- 27. less.jsガードと条件
- 28. C++ライブラリ包括ガード
- 29. Laravel 5.2.29マルチ認証::ガード(「1」)、認証::ガード(「2」)
- 30. Promise.all()とそれが解決されたときの理解
たぶん、[この回答](http://stackoverflow.com/a/40590812/6942210)があなたを助けることができます。これは、あなたがこのような何かを行うことができますどのようAngular Library「ハック」。私は彼に同じ問題があると思う。 –
ありがとう、あなたが言及した質問の答えは私がしたのと同じですが、私が言ったように、よりよい方法がおそらく存在すると思います。 –
@hosseinahmadi。これで助けが必要ですか? – AngularChef