Ich habe ein Problem mit Async-Pipe in Angular2, wenn ich es in einem *ngFor
verwenden.Angular2 async pipe funktioniert nicht in ngfor
Hier einige Code:
Dies ist die Vorlage
<li *ngFor="#obj of _filtersPageState | async">
hello world
</li>
Die _filtersPageState
Variable als deklariert ist:
private _filtersPageState: Observable<any> = new Observable<any>();
und es mithilfe der select
Funktion initialisiert von @ngrx/store
:
this._filtersPageState = store.select('FiltersPageState');
this._filtersPageState.subscribe(v => console.log(v));
Das FiltersPageState
Objekt innerhalb des Speichers wird über eine HTTP-Anfrage bevölkert und wenn ich das @ngrx/store
Objekt im Konsolenprotokoll zu drucken, kann ich, dass die Nehmeranforderung sieht richtig durchgeführt wird.
Mein Problem hier ist, dass, wenn die async
Rohr innerhalb der ngFor
platziert ist, die Komponente nicht geladen wird und ich bekomme keine Fehler in der Chrome-Konsole. Wenn ich {{_filtersPageState.value | async}}
in die HTML-Vorlage schreibe, wird der Wert Observable
korrekt angezeigt. 13
Jeder Hinweis oder Vorschlag
Ich bin mit Beta zu spielen? Vielen Dank!
bearbeiten
I angemerkt, dass, wenn I {{_filtersPageState| async}}
in der Vorlage zu schreiben und in der gleichen Zeit zu schreiben I ein ngFor
(auch dies eine Zyklus doe auf einer einfache Anordnung ohne async
Rohr, meine Komponente Pausen (stumm)
Edit 2
ich eine andere Fliese zum Rätsel hinzufügen möchten.
Die folgende Vorlage bricht die Komponente:
{{_filtersPageState | async}}
<li *ngFor="#obj of simpleArray">
{{obj}}
</li>
es heißt, wenn async
und ngFor
wollen nicht zusammen sein :(
bearbeiten 3
ich, dass kein Rohr herausgefunden ist Arbeiten in ngFor:
<h1 *ngFor="#element of filtersPageState|async">{{element}}</h1>
<h1 *ngFor="#element of simpleArray|uppercase">{{element}}</h1>
<h1 *ngFor="#element of simpleArray">{{element|uppercase}}</h1>
<h1 *ngFor="#element of simpleArray|aaaaaaaaa">{{element}}</h1>
in einem In vier Fällen (auch mit aaaaaaaaa
, bei der es sich um eine nicht vorhandene Pipe handelt) kann meine Komponente nicht fehlerfrei geladen werden.
Welchen Typ '' store.select ('FiltersPageState') 'zurück? 'ngFor' erwartet ein iterables, also könnte es nicht eins sein. Ich habe etwas sehr ähnliches in meinem Blogbeitrag dazu hier getan: http://lukajcb.github.io/blog/angular2/2016/04/02/frp-in-angular-2.html –
'store.select () 'gibt eine Observable mit einem Array zurück. Ich werde deinen Beitrag sehen, danke. Wie auch immer, ich habe die Frage bearbeitet und weitere Details hinzugefügt. –
Kannst du einen Plunker erstellen, der das Problem demonstriert? –