javascript - Förväntade 2 argument, men fick 1.ts(2554)
God morgon vänner, ursäkta besväret, jag övar för att lära mig och jag höll på att logga in, men problemet är att jag försöker ansluta det till ett API och det upprättar inte anslutningen, det ger mig ett superkonstigt fel i login-komponenten. Här bifogar jag login.component
import { Component, } from '@angular/core';
import { AppserviceService } from '../../services/appservice.service';
import { NgForm } from '@angular/forms';
import { AppsResp } from '../../interfaces/interfaces';
import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
})
export class LoginComponent {
email:string ='';
password:string='';
constructor(public AppserviceService: AppserviceService) { }
login() {
const user = {email: this.email, password: this.password};
this.AppserviceService.login(user).subscribe( data => {
console.log(data);
});
}
}
felet som passar är följande_ "Förväntade 2 argument, men fick 1.ts(2554) appservice.service.ts(15, 26): Ett argument för 'password' angavs inte."
Här bifogar jag apptjänstens service, vilket är där ursprunget till felet markerar mig
import { HttpClient } from '@angular/common/http';
import { Injectable, Query } from '@angular/core';
import { Observable } from 'rxjs';
import { AppsResp, Registro } from '../interfaces/interfaces';
@Injectable({
providedIn: 'root'
})
export class AppserviceService {
constructor(private http: HttpClient) { }
login ( email: string, password: string ){
const body = {email,password}
return this.http.post <AppsResp>("http://apitest.e-bango.com/api/auth/login" , body );
}
}
På samma sätt kan jag inte hitta den rätta logiken för att infoga registerkomponenten i min tjänst, kan du hjälpa mig? och förklara så detaljerat som möjligt vad jag gör fel? Tack
Svar #1
Jag tror att du har två sätt att lösa detta problem
1: Din inmatning till funktionen login är inte korrekt
login() {
const user = {email: this.email, password: this.password};
this.AppserviceService.login(user).subscribe( data => {
console.log(data);
});
}
Byt till
login() {
this.AppserviceService.login(email: this.email, password: this.password).subscribe( data => {
console.log(data);
});
}
2: Ändra funktionen login
login ( email: string, password: string ){
const body = {email,password}
return this.http.post <AppsResp>("http://apitest.e-bango.com/api/auth/login" , body );
}
till
login ( {email: string, password: string }){
const body = {email,password}
return this.http.post <AppsResp>("http://apitest.e-bango.com/api/auth/login" , body );
}
Svar #2
bara ändra inloggningsmetod i appserviceService
login ( body ){
return this.http.post <AppsResp>("http://apitest.e-bango.com/api/auth/login" , body );
}