【问题标题】:Angular form control not updating until next clickAngular 表单控件在下次单击之前不会更新
【发布时间】:2019-06-17 20:55:06
【问题描述】:
https://stackblitz.com/edit/angular-cnvphg 上的示例应用
我正在尝试根据其他检查更新FormArray 的复选框。本质上,如果选中第一项,则必须取消选中所有其他项。如果他们检查任何其他项目,则必须取消选中第一项。
如果您在我检查第一项时查看上面的示例,则没有任何反应。只有在我取消选中另一个项目后,其余的复选框才会空白。为什么会这样?我将控件更新包装在 setTimeout 块中,这是我认为这里公认的做法。
【问题讨论】:
标签:
angular
settimeout
angular7
formarray
【解决方案1】:
问题与表单控件无关,您使用它们就好了。它由pairwise() 运算符引起。在它有两个值之前它不会发出值。这就是为什么在第一次点击时没有任何反应。所以你应该为pairwise() 操作员提供初始值。试试这个;
this.formArray.valueChanges.pipe(
startWith([false, true, true, true]),
pairwise()
)