Angular 2 Reactive Forms - 检测组件

时间:2017-06-09 14:48:57

标签: angular2-forms

我想在form.component.ts上检测change事件的值。 我不想调用函数ex:(onChange)=“function($ event.target.value)”

public form: FormGroup;

constructor(private formBuilder: FormBuilder){ 

}

private loadForm(){
    this.form = this.formBuilder.group({
        tipo: [null, Validators.required],
        nomeRazao: [null, Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(64)])],
        apelidoFantasia: [null, Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(64)])],
        cpfCnpj: [null, Validators.compose([Validators.required, Validators.minLength(11), Validators.maxLength(14)])],
        rgIe: [null],
        contato: this.formBuilder.group({
            email: [null],
            telefone: [null]
        }),
        endereco: this.formBuilder.group({
            cep: [null, Validators.pattern('^([0-9]){5}([-])([0-9]){4}$')],
            uf: [null],
            cidade: [null],
            bairro: [null, Validators.required],
            logradouro: [null],
            complemento: [null],
            numero: [null, Validators.pattern('/^\d+$/')]
        })
    });
}

ngOnInit() {
    this.loadForm();
}

2 个答案:

答案 0 :(得分:26)

您可以使用以下方式订阅表单更改:

this.form.valueChanges.subscribe(() => {
   if (this.registerForm.controls['yourControlName'].value === 'someValue') {
      // 
   }
 });

答案 1 :(得分:7)

为了检测特定字段值的变化,可以订阅该字段上的'valueChanges'事件,如下所示:

this.myForm.get('formcontrolname').valueChanges.subscribe(val => {
    this.message = val;
  });