Javascript 角度:ControlValueAccessor更新到共享相同formControlName的所有组件
我希望这张图片能解释我想做什么。 所以我想做一个自定义的无线电组件,它共享相同的formControlName。 单击收音机时,共享相同formControlName的其余组件应使用活动值更新Javascript 角度:ControlValueAccessor更新到共享相同formControlName的所有组件,javascript,angular,typescript,angular-reactive-forms,controlvalueaccessor,Javascript,Angular,Typescript,Angular Reactive Forms,Controlvalueaccessor,我希望这张图片能解释我想做什么。 所以我想做一个自定义的无线电组件,它共享相同的formControlName。 单击收音机时,共享相同formControlName的其余组件应使用活动值更新 我该怎么做?我已经测试了在多个输入之间仅共享formControlName的行为,并且它不会仅基于此绑定属性进行更新。看起来需要解决方案、ngModel(仅适用于v5或更旧版本)或函数来完成所需的行为。此处提供了一个已关闭的问题和一些详细的对话框: 最值得注意的是: 共享表单控件目前仅支持自然分组的控
我该怎么做?我已经测试了在多个输入之间仅共享formControlName的行为,并且它不会仅基于此绑定属性进行更新。看起来需要解决方案、ngModel(仅适用于v5或更旧版本)或函数来完成所需的行为。此处提供了一个已关闭的问题和一些详细的对话框: 最值得注意的是: 共享表单控件目前仅支持自然分组的控件,如单选按钮(具有共享注册表)。对于文本输入共享控件,如果希望同步,ngModel是唯一的选项。考虑到解决方法,我们不太可能将此功能添加到被动表单中,所以请关闭。如果您觉得有一个用例无法通过其他方式解决,请随时打开一个问题,提供关于您的用例的更多信息 但也有关于变通办法的评论 变通办法 最吸引人的是: 当FormControl更新时强制[FormControl]和[FormControlName]更新的自定义指令 作用 您可以在组件中创建一个函数,用于设置formControl的值:
setControl(value){
this.form.controlName = value
}
并执行一个调用函数的单击事件:
<input type="radio" formControlName="controlName" (click)="setControl(x)">
编辑答案,并给出更全面的回答