Лучший и эффективный способ показать сообщение об ошибке в угловых реактивных формах без использования нескольких * ngIf - PullRequest
0 голосов
/ 07 января 2019

Я проверил свою форму, используя реактивную проверку формы, используя пакет @rxweb в своей форме, и я хочу показать сообщение об ошибке без кратных * ngЕсли я ссылался на вопрос, связанный с ним, но я не смог найти правильное решение для своего вопроса

Вот мой код component.html:

    <div [formGroup]="userForm">
      <div>
    <input type="text" formControlName="firstname"/>
        <div *ngIf="userForm.controls.firstname.errors && 
   userForm.controls.firstname.errors.required"
        class="alert alert-danger">
          This field is Required
        </div>
        <div *ngIf="userForm.controls.firstname.errors && userForm.controls.firstname.errors.maxLength"
        class="alert alert-danger">
          max length 10
        </div>

        <div *ngIf="userForm.controls.firstname.errors && userForm.controls.firstname.errors.minLength"
        class="alert alert-danger">
          minimum length is 5
        </div>
    </div> 

Я не хочу писать несколько условий * ngIf. Есть ли другой способ эффективно отображать сообщения об ошибках конфигурации реактивной формы?

1 Ответ

0 голосов
/ 08 января 2019

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

                         errorMessages = {
                           required: 'This field is Required',
                           maxLength: 'max length 10',
                           minLength: 'minimum length is 5'
                          }
                          errorMessage = '';

вызовите функцию ниже, если вы хотите показать ошибку

                 showErrors() {
         this.errorMessage = '';
         var errorName = Object.keys(userForm.controls.firstname.errors);
         this.errorMessage = this.errorMessages[errorName[0]];
            } 

измени свой HTML, как показано ниже

           <div [formGroup]="userForm">
           <div>
         <input type="text" formControlName="firstname"/>
        <div *ngIf="userForm.controls.firstname.errors"
         class="alert alert-danger">
        {{errorMessage}}
       </div>
     </div> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...