CombineLatest с привязкой события FormControl valueChanges не отправляет - PullRequest
0 голосов
/ 05 сентября 2018

Я слушаю 2 формы через 2 [formControl] "toppings": массив и "toppings2": массив.

Я должен иметь 2 значения форм одновременно. Поэтому я объединяю свои две наблюдаемые с «CombineLatest»

Мой код:

ngOnInit() {
combineLatest(this.toppings.valueChanges, this.toppings2.valueChanges)
    .subscribe(val => console.log(val)) 
}

Но теперь при инициализации компонента отправляется только одна форма console.log (val).

Если я нажму на эту форму, после того как получу журнал моей второй формы. Вы встречали эту проблему?

1 Ответ

0 голосов
/ 05 сентября 2018

Возможно, вы хотите иметь начальное значение для обоих наблюдаемых. combineLatest будет излучаться только в том случае, если все наблюдаемые излучают хотя бы одно значение. Используйте оператор startWith для создания этого поведения, например:

combineLatest(
    this.toppings.valueChanges.pipe(startWith("")), 
    this.toppings2.valueChanges.pipe(startWith("")))

Или, если у вас есть доступные начальные значения, как предложено:

combineLatest(
    this.toppings.valueChanges.pipe(startWith(this.toppings.value)), 
    this.toppings2.valueChanges.pipe(startWith(this.toppings2.value)))

Обратите внимание , что это будет излучаться один раз с начальными значениями. Чтобы подавить это поведение, вы можете использовать оператор skip(1), чтобы игнорировать это начальное уведомление.

...