Mein Plan ist es, die Werte eines Formulars in meinem ngrx-Speicher zu speichern, damit meine Benutzer, wenn sie möchten, auf der Seite und zurück zum Formular navigieren können. Die Idee wäre, dass die Werte der Form aus dem Speicher unter Verwendung eines Observablen wieder aufgefüllt werden.Wie kann ich ein Reactive Angular2 Formular mit einem Observable initialisieren?
hier ist, wie ich mache es zur Zeit:
constructor(private store: Store<AppState>, private fb: FormBuilder) {
this.images = images;
this.recipe$ = store.select(recipeBuilderSelector);
this.recipe$.subscribe(recipe => this.recipe = recipe); // console.log() => undefined
this.recipeForm = fb.group({
foodName: [this.recipe.name], // also tried with an OR: (this.recipe.name || '')
description: [this.recipe.description]
})
}
Der Laden ist ein Anfangswert gegeben, die ich richtig meine Auswahlfunktion gesehen durchläuft, sondern durch die Zeit wird meine Form erstellt, ich don Ich glaube nicht, dass der Wert zurückgekehrt ist. Daher ist this.recipe
immer noch nicht definiert.
Ist dies der falsche Ansatz, oder kann ich irgendwie sicherstellen, dass das Observable zurückgegeben wird, bevor das Formular erstellt wird?
Ich war nicht in der Lage, es auf diese Weise zu arbeiten. 'startsWith() existiert nicht für den Typ Observable'. Diese Funktion scheint nur für Strings zu existieren. –
Es tut mir leid, die Methode sollte 'startWith' sein. https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/startwith.md – shusson
'.startWith()' arbeitete mit der ersten Iteration, aber als die zweite (dev mode) lief, war sie wieder undefiniert. Ich habe es geschafft, indem ich 'startWith()' lösche und meinen Selektor zu '' return _.cloneDeep (state.recipebuilder) || ändere someDefaultValue; ' –