无法将数据传递给组件

问题描述:

我试图将参数传递给服务中定义的函数。该参数始终为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: '' 
}; 
+0

呃。我使用':'而不是'='。谢谢Stefan。我应该删除这个问题吗? –

+0

@KabirRoy碰巧人,别担心。我认为没有理由删除它,但是如果你愿意,你可以删除它,你的选择。 :-) –