import { Component, OnInit,Input } from '@angular/core';
import { Router } from '@angular/router';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'my-app',
styleUrls: ['app.component.css'],
templateUrl: 'app.component.html'
})
export class AppComponent implements OnInit {
@Input() awesomeForm: FormGroup;
constructor(private fb: FormBuilder) { }
ngOnInit() {
this.awesomeForm = this.fb.group({
awesome: ['', Validators.required]
})
this.awesomeForm.valueChanges.subscribe(changes => {
// do what you need with the form fields here
// you can access a form field via changes.fieldName
this.validateForm(changes);
});
}
public resetForm() {
this.awesomeForm.reset();
console.log('Error state is still active. :(');
}
public validateForm(changes: any) {
console.log('How to trigger validation without hacking focus events on the dom element?');
console.log('triggered and got changes',changes)
}
}
Вы можете подписаться на FormGroup
объект valueChanges
наблюдаемый, и в нем есть все поля, присутствующие в вашей форме, как только вы получите значения полей, вы можете в основном вызывать функцию проверки для каждого метода изменения поля и передавать еена validateForm(changes:any)