Angular 表单控件在下次单击之前不会更新
Angular form control not updating until next click
Sample app at https://stackblitz.com/edit/angular-cnvphg
我正在尝试根据其他检查更新 FormArray
的复选框。本质上,如果选中第一项,则必须取消选中所有其他项。如果他们选中任何其他项目,则必须取消选中第一项。
如果您查看上面的示例,当我检查第一项时没有任何反应。只有在我取消选中另一个项目后,其余的复选框才会消失。为什么会这样?我将控件更新包装在一个 setTimeout
块中,我认为这是这里公认的做法。
问题与表单控件无关,您使用它们很好。它由 pairwise()
运算符引起。在它有两个值之前它不会发出值。这就是为什么第一次点击没有任何反应的原因。所以你应该为 pairwise()
运算符提供初始值。试试这个;
this.formArray.valueChanges.pipe(
startWith([false, true, true, true]),
pairwise()
)
Sample app at https://stackblitz.com/edit/angular-cnvphg
我正在尝试根据其他检查更新 FormArray
的复选框。本质上,如果选中第一项,则必须取消选中所有其他项。如果他们选中任何其他项目,则必须取消选中第一项。
如果您查看上面的示例,当我检查第一项时没有任何反应。只有在我取消选中另一个项目后,其余的复选框才会消失。为什么会这样?我将控件更新包装在一个 setTimeout
块中,我认为这是这里公认的做法。
问题与表单控件无关,您使用它们很好。它由 pairwise()
运算符引起。在它有两个值之前它不会发出值。这就是为什么第一次点击没有任何反应的原因。所以你应该为 pairwise()
运算符提供初始值。试试这个;
this.formArray.valueChanges.pipe(
startWith([false, true, true, true]),
pairwise()
)