<div *ngIf="!!(result$ | async)">
{{!!(result$ | async)}}
</div>
Ich erwarte, dass es leer ist und zeige es dann true
. Überraschenderweise zeigt es sich false
und dann true
. Gibt es einen anderen Bewertungsmechanismus für? {{}}
und *ngIf
? Das result$
ist vom Typ Observable<{ products: any[] }>
.
constructor() {
this.result$ = Observable.of("Dummy!").delay(3000);
}
Angular2 Release-Version
Antworten:
1 für die Antwort № 1Der eigentliche Grund ist das in result$
ist kalt und wird jedes Mal erneut ausgeführt, wenn es angerufen wird. Und es gibt zwei Anrufe für result$ | async
in meinem Markup. Ich muss entweder eine tatsächliche Variable erstellen, um den Wert im Abonnement zu speichern oder hinzuzufügen share
Operator zu beobachtbar, um eine erneute Ausführung zu verhindern.
Da ist ein Ausgabe auf GitHub für Problemumgehungen.