Я сделал проверку сервера для моей angular -материальной формы.
И у меня есть две проблемы, во-первых, мне нужно установить <mat-error></mat-error>
, где я показываю свое сообщение из ответа сервера, вне от <mat-form-fiel>
<mat-form-field>
<input formControlName="lastName"
matInput
placeholder="Last Name*"
(focusout)="lastNameError = null"
/>
<mat-error>This field is required</mat-error> //--> this one is standard mat validation, and working on this place
</mat-form-field>
<mat-error class="mat-error-custom">{{ lastNameError }}</mat-error> //--> this one is for showing my server message, and this one need to stay outside from mat-form-fiel to work
Есть ли способ установить это внутри?
И второй вопрос
Как установить класс ошибок для поля ввода, если я использую проверку на стороне сервера? Теперь у меня есть что-то вроде этого
Но я хочу установить класс, чтобы получить эти красные границы как набор материалов, если мы используем валидаторы материалов
Вот метод, в котором я получаю и устанавливаю все свои ответные сообщения сервера
this.errorsMsgs$.pipe(takeUntil(this.destroy$)).subscribe((error: any) => {
this.resetErrorMesg();
if (error) {
for (let err of error.errors) {
if (err.field === "lastName") {
this.lastNameError = err.defaultMessage;
this.addNewUserForm.get("lastName").setErrors({ valid: false }); //--> I try add this but not working
}
if (err.field === "firstName") {
this.firstNameError = err.defaultMessage;
}
if (err.field === "email") {
this.emailError = err.defaultMessage;
}
}
}
});