如何在自定义控件(ControlValueAccessor)中接收表单控件的默认值

时间:2017-11-14 20:08:50

标签: angular

假设我有一个这样的表格:

this.form = fb.group({
        genders: [['MALE']],
    });

我已经实现了自己的自定义表单控件,它实现了ControlValueAccessor接口。我们了解到我们有writeValue方法,但只有在使用setValuepatchValue时才会调用此方法。如何获取FormBuilder的{​​{1}}方法中设置的默认值?

3 个答案:

答案 0 :(得分:0)

您可以通过在组件中传递一个简单的@Input()来完成此操作。

@Component({ selector: 'my-component', template: `....` })
export class Component extends ControlValueAccessor {
  @Input('property') property: any;
}

然后在HTML中,

<my-component formControl="gender" [property]="value">

答案 1 :(得分:0)

您希望从组值中接收默认值,请尝试使用您的组件:

this.form.value.genders

或者在您的.html文件中,您可以使用:{{ form.value. genders }}

答案 2 :(得分:0)

实际上我只是尝试过,writeValue被调用两次,但第二次将正确的值作为初始值放在表单对象中。