終わりました?実行レゾルバ角度2+で次々
3
A
答えて
5
リゾルバは並行して解決されます。 Foo
とBar
を直列に解決する場合は、FooBar
リゾルバである必要があります。彼らは他の路線に単独で使用されるようになっている場合は、FooBar
はFoo
とBar
リゾルバをラップすることができます:それは約束またはFoo
とBar
から返された観察可能な場合
class FooBarResolver implements Resolve<{ foo: any, bar: any }> {
constructor(
protected fooResolver: FooResolver,
protected barResolver: BarResolver
) {}
async resolve(route): Promise<{ foo: any, bar: any }> {
const foo = await this.fooResolver.resolve(route);
const bar = await this.barResolver.resolve(route);
return { foo, bar };
}
}
FooBar
は事実を認識する必要がありますそれらを適切に解決するためにそれ以外の場合は、await Observable.of(this.fooResolver.resolve(route)).toPromise()
のような安全装置を追加する必要があります。
FooBar
およびFoo
またはまたはBar
は、重複した解像度になるため同じルート内には表示されません。
+0
これは動作し、私のコードを再利用できるようにします。どうもありがとう! –
+1
よろしくお願いいたします。 – estus
関連する問題
- 1. 2角度:レゾルバ
- 2. 角度(2) - CLIで2つのプロジェクトを実行
- 3. 角度2 scrollto行動
- 4. 角度2フォーム検証、はminLengthバリデータは、私は角度2形式次いる
- 5. 角度2 +角度 - cli +角度@ 5.3
- 6. ノンアングルアプリ内で角度2アプリを実行する
- 7. RESTで2回実行される角度HttpPost
- 8. 生産環境で角度2を実行する方法
- 9. 角度実行jquery $(document).ready
- 10. 角度2(クリック)時々私は次のテンプレートを持っている私のアンギュラ2 /ブートストラップ/ AdminLTEで
- 11. 2次元配列角度行列の対角を塗りつぶす
- 12. 角度2ルータ+角度-CLI
- 13. javascriptコードを次々に実行
- 14. 角度1.4appでangular1.3appを実行
- 15. Macで角度クイックスタートを実行
- 16. 角度2の要素を別々にバインドする(クリック)
- 17. 角度2のPOSTを実行するとエラー401
- 18. 角度2つのCLIに実行するテスト
- 19. http取得時の角度2実行インターフェイス
- 20. 角度2と2
- 21. 我々は角2プロジェクト
- 22. 角度2:サービスは私の角度2のアプリで
- 23. 角度2イベントエミッタ?
- 24. 2角度 -
- 25. 角度2ディレクティブ
- 26. 角度2:ルート
- 27. 角度2コンパイルエラー
- 28. 角度2 io.socket.on
- 29. ブートストラップ角度2
- 30. 角度2は
いいえ、ありません –
あなたがしようとしていることは何でも。より良い方法があります。 – Carsten
これは 'foo'と' bar'が何であるか、なぜこの順序で解決されるべきかによって異なります。しかし、一般的に、これはfooとbarを含むオブジェクトに解決するFooBarResolverで実現できます。 – estus