<div *ngIf="!!(result$ | async)">
{{!!(result$ | async)}}
</div>
Je m'attends à ce qu'il soit vide et ensuite montrer true
. Étonnamment, ça se voit false
et alors true
. Existe-t-il un mécanisme d'évaluation différent pour {{}}
et *ngIf
? le result$
est de type Observable<{ products: any[] }>
.
constructor() {
this.result$ = Observable.of("Dummy!").delay(3000);
}
Version Angular2
Réponses:
1 pour la réponse № 1La raison réelle est que observable dans result$
est froid et est relancé à chaque appel. Et il y a deux appels à result$ | async
dans mon balisage. Je dois soit créer une variable réelle pour stocker la valeur sur abonnement ou ajouter share
opérateur à observable pour empêcher la réexécution.
Il y a un question sur github pour contourner le problème.