私はのためにResolver
sとちょっと混乱しています。 Resolversが解決する問題は、レンダリング時にオブジェクトにコンポーネントが存在することです。私はリゾルバずにそれを行うとの約束を経由して、コンポーネントのコンストラクタでオブジェクトをフェッチ開始するとの約束は十分に早く解決しない場合は、Angular2で解決されたデータへの非同期アクセス
{{myObj.foo.bar}}
のようにテンプレート内のネストされたプロパティにアクセスすることは非常に可能性が高い、エラーにつながる可能性http要求が行われる必要があるとき。以前のようにしかし、コンポーネントのコンストラクタ
this.route.data.subscribe(val => {...});
でこのようにそれを行うには私に語ったリゾルバから解決のオブジェクトを受け取るについてはほとんど情報が、これは同じのsh * tのではないですか?さて、バックエンドのリクエストはすでに完了しており、すぐにサブスクリプションを受け取ることは認めています。それにもかかわらず、私は解決されたデータに再び非同期的にアクセスします。テンプレートレンダリングで{{myObj.foo.bar}}にアクセスできる可能性は非常に高いですが、保証はありませんか?
私はそれがあまりにも重大であるかどうかわかりません。 canActivate
をルートに使用し、解決されたオブジェクトをサービスに設定することで、どのコンポーネントからも同時にアクセスできるようになるのは、私の意図に近いものです。
明確化
は保証はありません、ただ、安全性チェックを使用し、 'このmyobj .fooという.bar'、値が最終的にそこに到達すると、それは再レンダリングされます。 –
これは私が避けたいものです。数十個の "?"私のテンプレートの演算子。また、?演算子は、オブジェクトがオプションであることを意味します。ただし、ユーザーのプロフィールページでは、電話番号はオプションでも構いませんが、ユーザーオブジェクトはオプションではありません。必須です。 – Matt