2016-10-10 4 views
0

, wenn ich einen ngrx Speicher habe, der mit einer Probe von Präferenzen besteht die aussehen wie:ziehen erstes Objekt aus NGRX/store in Angular2

preferences: [{ name: 'pref1', type: 'boolean', value: true }, { name: 'pref2', type: 'boolean', value: true }, ... ]

wie würde ich nur die erste gespeicherte Präferenz als beobachtbare Verkettungs greifen aus this._store.select('preferences')?

Ich kann nicht die richtige Syntax finden, obwohl ich weiß rxjs hat eine .first() Methode zur Verfügung. Ich konnte kein gutes Beispiel dafür finden, wonach ich suche, damit es funktioniert.

+0

Die Antwort wirklich auf hänge, was sollte aus den beobachtbaren emittiert werden, wenn Ihr Array leer ist und nicht über ein erstes Element. Es könnte "null" ausgeben oder könnte nichts aussenden. Wenn letzteres jedoch verwendet wird, könnte das Observable nicht anzeigen, dass ein Array geleert wird. Sie müssen das erwartete Verhalten in Ihre Frage aufnehmen. – cartant

Antwort

0

Die Antwort @Sasxa war fast gab genau richtig. Dies ist die Lösung, die ich verwenden, um es zu bekommen arbeiten:

this._store.select('preferences') .map(preferences => preferences.filter((value, index) => index === 0))

1

Dies sollte es tun:

this._store.select('preferences') 
    .filter((value, index) => index === 0) 
+0

Danke @Sasxa, du hast mich auf dem richtigen Weg. Ich habe den Code veröffentlicht, den ich benutzt habe, um es unten zu funktionieren, wäre aber ohne Ihr Beispiel nicht in der Lage gewesen, dorthin zu gelangen. – autoboxer