Угловой элемент управления формой не обновляется до следующего щелчка

Пример приложения на https://stackblitz.com/edit/angular-cnvphg

Я пытаюсь обновить флажки FormArray на основе других проверок. По сути, если первый элемент отмечен, все остальные элементы должны быть сняты. Если они проверяют любой другой элемент, первый элемент должен быть снят.

Если вы посмотрите на пример выше, когда я проверяю первый элемент, ничего не происходит. Только после того, как я сниму отметку с другого элемента, остальные флажки исчезнут. Почему это происходит? Я завернул контрольное обновление в блок setTimeout, что, по моему мнению, было общепринятой практикой здесь.


person Gargoyle    schedule 17.06.2019    source источник


Ответы (1)


проблема не имеет ничего общего с элементами управления формами, вы их прекрасно используете. это вызывает оператор pairwise(). он не выдает значение, пока не получит два значения. вот почему ничего не происходит при первом нажатии. поэтому вы должны указать начальные значения для оператора pairwise(). попробуй это;

this.formArray.valueChanges.pipe(
   startWith([false, true, true, true]),
   pairwise()
)
person ysf    schedule 19.06.2019