Angular6 Promise 被解雇了两次
Angular6 Promise fired twice
我正在构建一个 angular 应用程序,但我的登录有问题。我的登录功能被触发了两次,我不知道为什么。
我的 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>
登录正常,但是当我点击登录按钮时,请求被触发了两次。有人知道为什么吗?
如果您的 form 标签中有 (ngSubmit)="login()"
并且 button 标签中有 (click)="login()"
,那么您的login() 将触发两次
因此在您的 .component.html 文件中进行以下更改
<form (ngSubmit)="login()">
// Rest of form
<button type="submit" >Login</button> // --> remove (click)="login()"
</form>
我正在构建一个 angular 应用程序,但我的登录有问题。我的登录功能被触发了两次,我不知道为什么。
我的 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>
登录正常,但是当我点击登录按钮时,请求被触发了两次。有人知道为什么吗?
如果您的 form 标签中有 (ngSubmit)="login()"
并且 button 标签中有 (click)="login()"
,那么您的login() 将触发两次
因此在您的 .component.html 文件中进行以下更改
<form (ngSubmit)="login()">
// Rest of form
<button type="submit" >Login</button> // --> remove (click)="login()"
</form>