Angular - FormGroup上的ngOnChange

时间:2018-01-31 23:27:45

标签: angular forms ngonchanges

我需要检测FormGroup字段的实时更改。我有一个简单的父子组件结构如下:

父组件视图

<my-child [myForm]="myForm"></my-child>

子组件控制器

@Input()
myForm: FormGroup;

ngOnChanges(changes: SimpleChanges) {
console.log('changes', changes)
}

问题是表单字段更改时未检测到任何更改。有没有办法触发ngOnChanges任何形式的变化? 感谢。

2 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

this.myForm.valueChanges.subscribe(changes => {
    // do what you need with the form fields here
    // you can access a form field via changes.fieldName
});

答案 1 :(得分:2)

formName: FormGroup;      
@Input() myForm: FormGroup;

ngOnChanges(changes: SimpleChanges) {
    const MyFormChanges: SimpleChange = changes.myForm;
    // To Check current values
    console.log(MyFormChanges.currentValue)

    // To Check previous values
    console.log(MyFormChanges.previousValue)

    // To Set Current Values to fields using controls
 this.formName.controls['email'].setValue(MyFormChanges.currentValue.email);
}