ControlValueAccessor组件未在角度7处更新表单组中的值

时间:2019-04-17 14:31:40

标签: angular typescript angular7

我使用的是angular7。我通过ControlValueAccessor创建了如下Stackblitz这样的子组件。我的表单中有一个组合框和文本框。当我从组合框中选择项目时,项目的值将设置为文本框。但是,当我单击“保存”按钮时,我的表单值变为空。变成空的原因可能是什么?

STACKBLITZ

1 个答案:

答案 0 :(得分:1)

您需要进行2项更改才能使其正常工作。

首先,您的onChange()方法什么也不做。

将其更改为public onChange: (value) => void

然后在写入this.onChange(selected)属性后在您的set selectedItem(selected)上调用value,使其变为

set selectedItem(selected) {
    this.value = selected;
    this.onChange(selected);
} 

请参见new stackblitz