Select Git revision
register.component.ts
register.component.ts 1.63 KiB
import { Component, OnInit } from '@angular/core';
import { userInfo } from '../contracts/userInfo';
import { FormControl, FormGroupDirective, NgForm, Validators, FormGroup, FormBuilder } from '@angular/forms';
import { ErrorStateMatcher } from '@angular/material';
export class MyErrorStateMatcher implements ErrorStateMatcher {
isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
const isSubmitted = form && form.submitted;
return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));
}
}
class CrossFieldErrorMatcher implements ErrorStateMatcher {
isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
return control.dirty && form.invalid;
}
}
@Component({
selector: 'app-register',
templateUrl: './register.component.html',
styleUrls: ['./register.component.scss']
})
export class RegisterComponent implements OnInit {
ngOnInit() {
}
harsha:userInfo;
password="";
value="";
userForm: FormGroup;
errorMatcher = new CrossFieldErrorMatcher();
constructor(private fb: FormBuilder) {
this.initForm();
}
initForm() {
this.userForm = this.fb.group({
password: '',
verifyPassword: ''
}, {
validator: this.passwordValidator
})
}
passwordValidator(form: FormGroup) {
const condition = form.get('password').value !== form.get('verifyPassword').value;
return condition ? { passwordsDoNotMatch: true} : null;
}
emailFormControl = new FormControl('', [
Validators.required,
Validators.email,
]);
matcher = new MyErrorStateMatcher();
}