Могу ли я вернуть строковое значение через угловой метод проверки - PullRequest
0 голосов
/ 20 сентября 2019

Вот мой рабочий метод проверки (но обратите внимание, где я пытаюсь проникнуть в res):

  checkIfEmailExists(email: string): Observable<object | null> {
    return this.store.pipe(
      select(selectAssigneeNameByEmail(email)),
      debounceTime(500),
      take(1),
      map(name => {
        return res ? { alreadyExists: true, name } : null;
      })
    );

и вот где я вызываю его в компоненте (и хотел бытакже использовать имя сверху, но как? Pipe?:

 alreadyExists(control: AbstractControl): object {
    return this.emailAlreadyExistsValidator.checkIfEmailExists(control.value)
 }

html:

<mat-error *ngIf="form.get('email').hasError('alreadyExists')">email already associated with {{name}}</mat-error>

Итак, я просто хочу использовать res сверху, чтобы сказать, извините, чтоэлектронная почта уже связана с {{name}}

1 Ответ

2 голосов
/ 20 сентября 2019

, поскольку ваш объект ошибки, возвращенный из проверки, уже возвращает имя (через {alreadyExists: true, name} объект), вы можете просто получить его из формы:

<mat-error *ngIf="form.hasError('alreadyExists', 'email')">
  email already associated with {{ form.getError('name', 'email') }}
</mat-error>

Хорошей идеей для ИМО будет вернутьсвязанное сообщение об ошибке прямо из валидатора:

return res ? { alreadyExists: `E-mail already associated with ${name}` } : null;

А затем в HTML:

<mat-error *ngIf="form.getError('alreadyExists', 'email'); let errorMsg">
  {{ errorMsg }}
</mat-error>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...