qi *_*eng 5 angular angular-reactive-forms angular-forms
import { Component, OnInit } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'app-user-register',
templateUrl: './user-register.component.html',
styleUrls: ['./user-register.component.css']
})
export class UserRegisterComponent implements OnInit {
registerationForm: FormGroup = new FormGroup({});
constructor() { }
ngOnInit() {
this.registerationForm = new FormGroup({
userName : new FormControl(null, Validators.required),
email : new FormControl(null, [Validators.required, Validators.email]),
password : new FormControl(null, [Validators.required, Validators.minLength(8)]),
confirmPassword : new FormControl(null, [Validators.required]),
mobile : new FormControl(null, [Validators.required, Validators.minLength(10)])
}, this.passwordMatchingValidatior);
}
passwordMatchingValidatior(fg: FormGroup): Validators{
return this.registerationForm.get('password').value === this.registerationForm.get('confirmPassword').value ? null : {notmatched: true};
}
onSubmit(){
console.log(this.registerationForm);
}
}
Run Code Online (Sandbox Code Playgroud)
错误消息 错误:src/app/user/user-register/user-register.component.ts:24:5 - 错误 TS2322:类型 '{ notmatched: boolean; } | null' 不可分配给类型'Validators'。类型“null”不可分配给类型“Validators”。
24 返回 this.registerationForm.get('password').value === this.registerationForm.get('confirmPassword').value ?null : {不匹配: true};
错误:src/app/user/user-register/user-register.component.ts:24:61 - 错误 TS2531:对象可能为“null”。
24 返回 this.registerationForm.get('password').value === this.registerationForm.get('confirmPassword').value ?null : {不匹配: true};
小智 11
创建你的验证器
export const passwordMatchingValidatior: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {
const password = control.get('password');
const confirmPassword = control.get('confirmPassword');
return password?.value === confirmPassword?.value ? null : { notmatched: true };
};
Run Code Online (Sandbox Code Playgroud)
并更新表单组验证器
this.registerationForm = new FormGroup({
userName: new FormControl(null, Validators.required),
email: new FormControl(null, [Validators.required, Validators.email]),
password: new FormControl(null, [Validators.required, Validators.minLength(8)]),
confirmPassword: new FormControl(null, [Validators.required]),
mobile: new FormControl(null, [Validators.required, Validators.minLength(10)])
}, { validators: passwordMatchingValidatior });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11131 次 |
| 最近记录: |