Ошибка не обновляется в пользовательском интерфейсе с массивом форм Dynami c - PullRequest
0 голосов
/ 17 июня 2020

У меня есть сетка, сетка состоит из 7 столбцов, и на основе имен полей ответа службы я создал элемент управления, связывающий значения.

вариант использования 1: работает нормально

если ответ сервера сетки возвращается две строки данных, я связал две строки сетки, и каждый раз, когда пользователь меняет столбец, я должен делать запрос на сервер, и сервер будет проверять значения и отправлять ответ, проверка работает хорошо.

Проблема Вариант использования,

В сетке есть кнопка добавления строки, при нажатии на строку добавления создается динамический c элемент управления, если пользователь изменяет значение в ячейке, он сделает запрос и отправьте ответ, я установил ошибки и вернул ошибки в asyn c валидаторах.

Но есть ошибки, он показывает null в пользовательском интерфейсе.

result?.valid? null : control.setErrors({error: result.errormessage, hint: result.hintmessage});  
         return result?.valid? null : control.setErrors({error: result.errormessage, hint: result.hintmessage};

Я используя такой подход для валидаторов. установите asyn c валидаторы, как это

controlname.setAsyncValidators(this.formService.validators(this.formValidationService.loginAsyncValidator));






export const loginAsyncValidator = (authService: AuthService, time: number = 500) => {
  return (input: FormControl) => {
    return timer(time).pipe(
      switchMap(() => authService.checkLogin(input.value)),
      map(res => {
       result?.valid? null : control.setErrors({error: result.errormessage, hint: result.hintmessage});  
         return result?.valid? null : control.setErrors({error: result.errormessage, hint: result.hintmessage};
    );
  };
};

Пример ссылки: это не точный сценарий, я следил за этой службой asyncvalidation. демо: демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...