Angular ControlValueAccessor onChanges不更新表单控件值

时间:2019-05-29 17:27:44

标签: angular forms onchange

这里是所复制的组件/问题的stackblitz

我构建了一个自定义输入组件,该组件:

  1. 采用用户对象数组进行提前过滤
  2. 将您的选择显示为标签
  3. 表单控制值是所选用户users[]
  4. 的数组

问题在于adding a result(input-tags.component)无法更新表单(app.component),我也不明白为什么。

input-tags.component.ts

addTag(contact: any) {
   ...
   this.onChange(this.tags); // update controller value
}

app.component.ts

this.form.controls['users'].valueChanges.subscribe(data => {
  this.control = data; // always null
});

onChanges可以按预期方式调用,并且除窗体控件始终为null之外,其他都可以正常运行。为什么?

1 个答案:

答案 0 :(得分:1)

错误似乎出在您的addTag()函数中。您正在尝试访问typeaheadSource中不存在的参数。将contact.userId更改为contact.id,您应该会很好。