2016-04-05 14 views
2

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.

+0

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 –

+0

'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. –

+0

Kannst du einen Plunker erstellen, der das Problem demonstriert? –

Antwort

1

Ich löste das Problem.

Ich war in der verkleinerten Version von Angular 2 enthalten, sobald ich angular2.dev.js, alles begann zu arbeiten.

Danke