Я пытаюсь создать пользовательский валидатор, который будет сравнивать два пароля, которые должны совпадать, если они не совпадают, кнопка должна быть отключена, и если они это делают, пользователь может завершить регистрацию.
После поиска переполнения стекаи просматривая другие сайты, я переписал созданный на заказ валидатор, чтобы соответствовать ранее предоставленным ответам;Однако ни одна из них, похоже, не влияет на ошибку, с которой я сталкиваюсь.
Импорт
import { FormControl, Validators, FormGroup, ValidatorFn, AbstractControl } from "@angular/forms";
import { Component } from "@angular/core";
import { MatButton } from "@angular/material";
FormGroup
registerForm = new FormGroup({
first: new FormControl(null, [
Validators.required,
]),
last: new FormControl(null, [
Validators.required,
]),
id: new FormControl(null, [
Validators.required,
]),
email: new FormControl(null, [
Validators.required,
Validators.email
]),
newpass: new FormControl(null, [
Validators.required,
this.ageRangeValidator
]),
confirmpass: new FormControl(null, [
Validators.required,
this.ageRangeValidator
]),
}, {this.matchingPasswords} );
CustomValidator
matchingPasswords(c: AbstractControl): {[key: string]: any} {
let password = c.get(['passwords']);
let confirmPassword = c.get(['confirmpwd']);
if (password.value !== confirmPassword.value) {
return { mismatchedPasswords: true };
}
return null;
}
Когда я пытаюсь запустить этот код, я сталкиваюсь со следующей ошибкой:
Аргумент типа '{this: any;} 'нельзя назначить параметру типа' ValidatorFn |ValidatorFn [] |AbstractControlOptions.Объектный литерал может указывать только известные свойства, и «this» не существует в типе «ValidatorFn |ValidatorFn [] |AbstractControlOptions'.ts (2345)
Это для старшего школьного проекта.