md-ошибка в angular-material2, как ограничить ее только одной ошибкой при сбое проверки

в угловом материале 2 для проверки ввода они говорят:

Если элемент ввода может иметь более одного состояния ошибки, то потребитель может переключать сообщения, которые должны отображаться. Это можно сделать с помощью CSS, ngIf или ngSwitch.

но если я скажу следующее

  <md-input-container class="full-width">
  <input type="Email" mdInput [formControl]="formControls.emailFormControl" placeholder="Email" [(ngModel)]="formData.email"
    required>
  <md-error *ngIf="formControls.emailFormControl.hasError('required')">
    Email is <strong>required</strong>
  </md-error>
  <md-error *ngIf="formControls.emailFormControl.hasError('email')">
    Email is <strong>invalid</strong>
  </md-error>
</md-input-container>

как без необходимости иметь несколько операторов && я могу ограничить это одной ошибкой, если обе проверки не пройдены?


person Kisbys    schedule 12.07.2017    source источник


Ответы (2)


Вы можете использовать действительный атрибут:

<md-error *ngIf="!formControls.emailFormControl.valid">
  Email is <strong>invalid</strong> or <strong>missing</strong>
</md-error>
person seescode    schedule 12.07.2017

Вы также можете поделиться одним md-error и просто изменить строку ошибки

<md-error>
  Email is <strong>getErrorMessageType()</strong>
</md-error>


getErrorMessageType(): string {
  if (formControls.emailFormControl.hasError('required') {
    return 'required';
  } else {
    return 'invalid';
  }
}
person Will Howell    schedule 12.07.2017