Angular6 Promise выстрелил дважды - PullRequest
0 голосов
/ 22 октября 2018

Я создаю угловое приложение и у меня проблема с моим логином.Моя функция входа в систему запускается дважды, и я не знаю почему.

Мой метод AuthenticationService похож на:

public login(body: any): PromiseLike<any> {
return this.http
  .post(`${environment.baseApi}/login`, body)
  .pipe(
    catchError((e) => this.handleErrorLog(e, true))
  )
  .toPromise();
}

Мой LoginComponent похож на:

public login() {
this.loginUser.username = this.username;
this.loginUser.password = this.password;

this.authService.login(this.loginUser).then((data) => {
  console.log("login...");
  this.loginSuccessful(data);
});

}

Моя кнопка HTML похожа на:

<button class="btn btn-lg btn-primary btn-block login-btn" type="submit" [disabled]="loginForm.invalid" (click)="login()">Login</button>

Логин работает, но когда я нажимаю на кнопку, чтобы войти, запрос запускается дважды.Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 22 октября 2018

Если у вас есть (ngSubmit)="login()" в вашем бланке и (click)="login()" в вашем кнопке , то ваш логин () сработает дважды

Поэтому внесите следующие изменения в .component.html файл

<form (ngSubmit)="login()">
    // Rest of form
  <button type="submit" >Login</button> // --> remove (click)="login()"
</form>
...