проверка элементов управления формой имеет больший приоритет, чем переход по другому URL-адресу - angular2

на странице html есть <form> с проверкой и тегом <a>, как показано ниже.

<form #loginForm="ngForm" (ngSubmit)="login()" novalidate>
      <div class="form-group">
        <label for="email">Email</label>
        <input type="email" class="form-control" id="email" placeholder="Email"
        required
        email
        [(ngModel)]="model.email" name="email"
        #email="ngModel">
        <div *ngIf="email.invalid && (email.dirty || email.touched) " class="ha-control-alert">
          <div *ngIf="email.errors.required">Email is required</div>
          <div *ngIf=" !email.errors.required  && email.errors.email">Email is invalid</div>
        </div>
      </div>
</form>
<div>
    <a [routerLink]="['/account/forgot']">Forgot your password?</a>
</div>

проблема в том, что если ввод (ввод электронной почты) касается пользователя, но остается пустым, и после этого пользователь нажимает на <a>, страница не перенаправляется, и появляется сообщение об ошибке для ввода, после этого, если пользователь снова нажимает на <a>, страница будет перенаправлен, кажется, что проверка проверки и отображение сообщения об ошибке имеет больший приоритет, чем навигация по тегу <a>, это странно, кажется, что требуется еще один шаг взаимодействия с пользователем, после чего навигация будет работать. как можно решить эту проблему?


person Paridokht    schedule 21.10.2017    source источник
comment
Попробуйте добавить событие «щелчок» и проверьте, действительно ли <a> щелкнули.   -  person kemsky    schedule 21.10.2017
comment
@kemsky да, по нему щелкают, но поведение точно такое же, я поместил alert внутри функции щелчка, и она предупредит после проверки touced и отображения сообщения об ошибке   -  person Paridokht    schedule 21.10.2017


Ответы (2)


Я думаю, проблема в том, что ваша форма отправляется, когда нажимается «забыли пароль». Попробуйте добавить кнопку входа внутрь <form>; тогда маршрутизация должна работать нормально.

person Community    schedule 22.10.2017
comment
Я вас не понимаю и так не думаю! тег <a> отсутствует в <form>, и вы можете видеть, что (ngSubmit)="login()" есть. Если вы имеете в виду что-то другое, приведите пример. - person Paridokht; 22.10.2017

Я решил эту проблему, используя css class для отображения/скрытия элемента вместо использования *ngIf

person Paridokht    schedule 30.12.2017