Я использую угловой 7 с компонентами дизайна материала
У меня есть требование добавить проверку requireMatch в mat-autocomplete.
Я создал пользовательскую проверку с параметром, но значение параметра изменяется динамически.
Ниже приведен мой код компонента.
this.stepFormGroup = this.formBuilder.group({
AccessCode: ["", [Validators.required, this.requireMatch(this.accessCodeList)]]
});
////require-match validation for access-code
requireMatch = (accessCodes: string[]) => {
return (control: FormControl) => {
const selection: any = control.value;
console.log("accessCodes", accessCodes, "selection", selection);
if (accessCodes.indexOf(selection)===-1) {
return { requireMatch: true };
}
return null;
}
}
Проблема, с которой я сталкиваюсь: я всегда получаю пустое значение (init) в accessCodes
внутри requireMatch
.
Изменения this.accessCodeList
не отражаются в валидаторе.
То есть после изменения this.accessCodeList
он не получает обновленный массив в requireMatch
валидаторе.
Так, у кого-нибудь есть идеи о том, как передать динамический параметр в custom-validator?