«Как исправить ошибку« index 0 in get error »в angular» - PullRequest
0 голосов
/ 24 марта 2019

Я разработал форму под angular-7 с проверкой ввода. Все элементы на входе работают нормально, кроме одного, который показывает индекс со значением 0.

Я искал в Интернете предлагаемые решения.

тип сценария:

constructor(private router: Router,
private service: BvUserService,
private fb: FormBuilder,
private toastr: ToastrManager,
private apiErrors: ApiErrorsService
) {
this.createForm = this.fb.group({
  'Login': ['', Validators.required],
  'OldPassWord': ['',Validators.required],
  'Password': ['', [Validators.required, Validators.minLength(8), Validators.maxLength(12)]],

});
this.apiErrors.onError.subscribe(_ => { console.log('get error'); this.setErrors(); });}
setErrors() {
let error = this.apiErrors.getErrors(location.pathname);

// Pour chaque controle du formulaire
Object.keys(this.createForm.controls).forEach(key => {
  const control = this.createForm.get(key);
  // Suppression des erreurs de validation
  control.setErrors(null);
  // Obtention des A©ventuelles erreurs de validation
  let errors = this.apiErrors.getFieldErrors(location.pathname, key);
  if (errors && errors.length > 0) { 
    // Application des erreurs sur le controle
    errors.forEach((value, idx) => {
      control.setErrors({ [`${key}-${idx}`]: value }, { emitEvent: true });
    });
  }

  control.markAsTouched();
});

html:

 <mat-form-field class="example-full-width">
      <input matInput placeholder="Entrez votre ancien mot de passe" [type]="hide ? 'password' : 'text'" formControlName="OldPassWord" required>
      <mat-icon matSuffix (click)="hide = !hide">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>
      <mat-error *ngFor="let error of getErrors('OldPassWord')">
        {{error}}
      </mat-error>
    </mat-form-field>
  </p>

ошибка:

 {"key":"OldPassword","messages":["champs obligatoire"]}]}]
 api-errors.service.ts:68 index 0 get error
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...