Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 价值未反映在<;输入>;从ControlValueAccessor内部更新值时_Angular - Fatal编程技术网

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。你可以在我的闪电战中试试。