无法将数据传递给组件
问题描述:
我试图将参数传递给服务中定义的函数。该参数始终为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.')
);
}
authentication.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
}
我缺少什么?
答
您正在完美地传递数据,但问题是您声明变量credentials
的类型为{ username: '', password: '' };
,您没有为其赋值,这就是为什么它是undefined
。 :
将类型赋值给变量,=
赋值。这就是你要找的东西:
credentials: any = {
username: '',
password: ''
};
呃。我使用':'而不是'='。谢谢Stefan。我应该删除这个问题吗? –
@KabirRoy碰巧人,别担心。我认为没有理由删除它,但是如果你愿意,你可以删除它,你的选择。 :-) –