#angular #typescript
#angular #typescript
Вопрос:
Я пытаюсь передать параметр функции, определенной в сервисе. Параметр всегда undefined
.
login.component.ts
import { Component, OnInit } from '@angular/core';
import { AuthenticationService } from '../authentication.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css'],
providers: [AuthenticationService]
})
export class LoginComponent implements OnInit {
credentials: {
username: '',
password: ''
};
constructor(private _authenticationService: AuthenticationService) {}
ngOnInit() { }
login() {
this._authenticationService.login(this.credentials).subscribe(
response => console.log(response),
error => console.log(error),
() => console.log('Done.')
);
}
аутентификация.service.ts
import { Http } from '@angular/http';
import { Injectable } from '@angular/core';
@Injectable()
export class AuthenticationService {
constructor() { }
login(credentials) {
console.log(credentials); // This is undefined
}
Чего мне не хватает?
Ответ №1:
Вы передаете данные идеально, но проблема в том, что вы объявили переменную credentials
с типом { username: '', password: '' };
, вы не присвоили ей значение, вот почему это так undefined
. :
присваивает переменной тип, =
присваивает значение. Это то, что вы ищете:
credentials: any = {
username: '',
password: ''
};
Комментарии:
1. Тьфу. Я использовал
:
вместо=
. Спасибо Стефану. Должен ли я удалить вопрос?2. @KabirRoy Это случается, чувак, не волнуйся. Я не вижу причин удалять это, но вы можете удалить это, если хотите, на ваш выбор. 🙂