Мой план состоит в том, чтобы сохранить значения формы в моем магазине ngrx, чтобы мои пользователи могли перемещаться по сайту и вернуться к форме, если они того пожелают. Идея заключалась бы в том, что значения формы будут заселяться из магазина с помощью наблюдаемого.Как инициализировать форму Reactive Angular2 с помощью Observable?
вот как я это делаю в данный момент:
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]
})
}
Магазин присваивается начальное значение, которое я видел, проходит через мою функцию селектора правильно, но к тому времени моя форма создана, я дон Не думаю, что ценность вернулась. Поэтому this.recipe
по-прежнему не определено.
Это неправильный подход, или я могу каким-то образом гарантировать, что наблюдаемое возвращается до создания формы?
Мне не удалось заставить его работать таким образом. 'startsWith() не существует в типе Observable'. эта функция, по-видимому, существует только для строк. –
Извините, метод должен быть 'startWith'. https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/startwith.md – shusson
'.startWith()' работал на первой итерации, но когда второй (режим dev) запускался, он снова не был определен. Я получил его для работы, удалив 'startWith()' и изменив свой селектор на: 'return _.cloneDeep (state.recipebuilder) || someDefaultValue; ' –