Итак, я получаю эту ошибку: Аргумент типа '{ "username:": string; "пароль": строка; }" не может быть назначен параметру типа "строка"
Мой код:
export class LoginPage implements OnInit {
responseData : any;
userData = {"username:":"", "password":""};
constructor(private menu: MenuController, private authloginService: AuthloginService, public navCtrl : NavController ) {
}
fazerLogin(){
this.authloginService.logarConta(this.userData, 'login').then((result)=>{ // error here
this.responseData = result;
console.info(this.responseData);
this.navCtrl.navigateForward('home')
});
EDIT1: AuthloginService с функцией logarConta:
export class AuthloginService {
private API_URL: 'https://myapi.com/api';
constructor(public http: HttpClient) { }
logarConta(email: string, password:string){
return new Promise((resolve, reject) =>{
var data = {
name: name,
email: email,
password: password,
message: 'Test',
};
this.http.post(this.API_URL + 'login', data)
.subscribe((result: any) =>{
resolve(result.json())
},
(message) =>{
reject(message.json())
})
});
первый аргумент authLoginService.logarConta() - это строка, а не объект
@JohnGraham только что отредактировал





Это должно быть:
this.authloginService.logarConta(this.userData.username, this.userData.password)
.then((result)=>{
this.responseData = result;
console.info(this.responseData);
this.navCtrl.navigateForward('home')
});
Но я не уверен, что этот logarConta метод хорош. Потому что у вас есть аргумент email, а у вашего userData = {"username:":"", "password":""}; нет ключа электронной почты. Вы должны проверить, правильный ли это подход.
Потрясающе, спасибо, что поделились. Проблема в том, что у вас есть объект userData, который имеет 2 строковых свойства: имя пользователя и пароль. Ваша функция logarConta ожидает 2 строковых переменных, адрес электронной почты и пароль, но вы просто передаете 1 объект. Вы можете исправить это, изменив свой вызов, чтобы он выглядел так:
this.authloginService.logarConta(this.userData.username, this.userdata.password).then((result)=>{ // error here
this.responseData = result;
console.info(this.responseData);
this.navCtrl.navigateForward('home')
});
Это правильно сопоставит свойства объекта с переменными, которые ожидает функция.
Спасибо за ответ!
this.authloginService.logarConta(...this.userData, 'login')
Здравствуйте, не могли бы вы поделиться с нами определением вашей функции AuthloginService.logarConta?