Angular 价值未反映在<;输入>;从ControlValueAccessor内部更新值时
我有一个表单控件Angular 价值未反映在<;输入>;从ControlValueAccessor内部更新值时,angular,Angular,我有一个表单控件myControl,我在名为ControlComponent的组件上为其实现了ControlValueAccessor 在AppComponent中,我有一个也绑定到myControl 问题: 我在ControlComponent中有一个按钮,它用表情符号替换当前值。当我单击该按钮时,表单得到了很好的更新,但问题是值没有反映在AppComponent的输入中 您需要将输入标记移动到控制组件。 将@输入(例如“值”)添加到控制组件。 然后只需更新writeValue()函数中的值即
myControl
,我在名为ControlComponent
的组件上为其实现了ControlValueAccessor
在AppComponent
中,我有一个也绑定到myControl
问题:
我在ControlComponent中有一个按钮,它用表情符号替换当前值。当我单击该按钮时,表单得到了很好的更新,但问题是值没有反映在AppComponent的输入中
您需要将输入
标记移动到控制组件
。
将@输入
(例如“值”)添加到控制组件
。
然后只需更新writeValue()
函数中的值即可。
作为组件父级的表单也已正确更新
模板
在任意两个元素上使用相同的formControlName
指令时,也会发生同样的情况。它们不同步。我很难理解您试图在这里实现什么,为什么您的应用程序组件和自定义中都有相同的表单控件?我的应用程序中有许多输入。我希望所有输入都有一个表情选择器,使用该选择器,用户可以将表情附加到当前值@AJT-中,但仍然无法回答为什么要显示相同的表单控件两次?还是我愚蠢而不理解:对不起,这并不能回答任何问题。这是问题的最小再现,而不是我的实际用例。@dasfdsa您能更详细地描述问题吗?并解释为什么需要自定义表单控件?我的应用程序中有许多输入。我希望所有输入都有一个表情选择器,用户可以使用该选择器将表情附加到当前输入中value@dasfdsa我根据你的评论更新了答案。希望这次我理解正确是的,你理解正确,但是this.value=value代码>。你可以在我的闪电战中试试。