*ngIf
に2つの観測値を結合しようとしていて、両方が放出されたときにユーザーインターフェイスを表示しようとしました。*複数の非同期パイプ変数を持つngIf
テイク:
<div *ngIf="{ language: language$ | async, user: user$ | async } as userLanguage">
<b>{{userLanguage.language}}</b> and <b>{{userLanguage.user}}</b>
</div>
から:Putting two async subscriptions in one Angular *ngIf statement
これは、限り、それはlanguage$
とuser$
は、2つのHTTPリクエストからだろう私の場合、ただしコンパイルし、それがuser$
がTypeError: _v.context.ngIf.user is undefined
のようなランタイムエラーをスロー思えるように動作します。基本的に私が本当に欲しいもの
(これは動作しません)です:
<div *ngIf="language$ | async as language && user$ | async as user">
<b>{{language}}</b> and <b>{{user}}</b>
</div>
は最適なソリューションです:
- は、コンポーネント内の購読と結合するには、変数
- に書き込みますコンポーネント内の2つの観測値は、
withLatestFrom
- nullチェックを追加します。
{{userLanguage?.user}}
forkJoinは、完了したオブザーバブル(Http observablesである)に対してのみ機能することに注意してください。 – estus
@estusはい、それが私が書いた理由です。あなたは何をしたいのですか? – mickaelw