Angular2テンプレートが表示するためにデータに依存し、そのデータがまだ読み込まれていない場合、アプリケーション全体が中断し、ユーザーはページを再読み込みする必要があります。データがAngular2に読み込まれる前のページを表示
Angular2リゾルバはこの問題の解決方法です。リゾルバーは、約束や観察可能な解決が得られるまで、ページの読み込みを防ぎます。しかし問題は、リゾルバが解決するまでページがレンダリングされないことです。
たとえば、スピナーの後ろにページが表示され、使用可能になった後にデータが表示されるようにしたい場合はどうなりますか?レゾルバを使用するAngular2でこれを行う方法はありますか、使用できない場合にデータが使用されないようにするためにテンプレートにロジックを持たせて、独自のサービス呼び出しをコンポーネントに実装する唯一の方法ですか?たとえば、テンプレート内の{{ foo.bar }}
はすべて{{ foo && foo.bar }}
に変更する必要があります。
これを行うには、角度2のアプローチがありますか?
{{foo && foo.bar}}
はちょうどあなたがネストされたプロパティを解決したい場合に便利です疑問符演算子を、用途等
ありがとうございました。私の質問は、リゾルバのパターンを維持しながら、これらの種類(複数のスピナー、ページ表示)を行う方法に関するものです。それ以外の場合は、コンポーネントにカスタムロジックを追加して、まだデータがロードされているかどうかを判断する必要があります。私はそれをすることなくページを表示する方法を求めています。 –
これは可能だとは思わない。 「たとえば、連絡先をクリックして連絡先の詳細を表示できる連絡先アプリケーションでは、ルーティング先のコンポーネントがインスタンス化される前に連絡先データが読み込まれているはずです」(https:// blog .restram.io/angular/2016/10/10/resolving-route-data-in-angular-2.html) – Matt
レゾルバが完了する前にコンポーネントがインスタンス化されない場合、コンポーネントのビューをレンダリングする機会はありません。とにかく、それは解決者の目標の1つだと思います。 – Matt