Angular “我总是得到”的回答;无法读取属性';GetEmployee';“未定义”的定义;在消费服务的同时

Angular “我总是得到”的回答;无法读取属性';GetEmployee';“未定义”的定义;在消费服务的同时,angular,typescript,Angular,Typescript,我对angular2很陌生,我想通过youtube学习angular2。 我试图在其他类中创建一个服务和消费。但是当我运行我的项目时,我总是得到“无法读取未定义的属性'GetEmployee'” 下面是我的代码 下面是我创建employee对象并返回的服务 import { Injectable } from '@angular/core' import { IEmployee } from './employee' @Injectable() export class Employ

我对angular2很陌生,我想通过youtube学习angular2。 我试图在其他类中创建一个服务和消费。但是当我运行我的项目时,我总是得到“无法读取未定义的属性'GetEmployee'” 下面是我的代码

下面是我创建employee对象并返回的服务

  import { Injectable } from '@angular/core'
  import { IEmployee } from './employee'

 @Injectable()
export class EmployeeService 
{
GetEmployee():  IEmployee[]
 {

     return [
         { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 
     5500, dateOfBirth: '01/01/2010' },
         { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 
    5500, dateOfBirth: '01/01/2010' },
         { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 
      5500, dateOfBirth: '01/01/2010' },
         { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 
       5500, dateOfBirth: '01/01/2010' },
         { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 
   5500, dateOfBirth: '01/01/2010' }
     ];
  }
 }
在下面的代码中,我正在尝试使用该服务

 import { Component } from '@angular/core'
 import { IEmployee } from './employee'
 import { EmployeeService } from './employee.service'

@Component
({
    selector: 'list-Employee',
    templateUrl: 'app/Employee/EmployeeList.component.html',
    styleUrls: ['app/Employee/EmployeeList.component.css'],
    providers: [EmployeeService]
})

export class EmployeeList {
selectedEmployeeCountRadioButton: string = 'All';
employees: IEmployee[];

private _emlployeeService: EmployeeService;

constructor(private _employeeService: EmployeeService) {
    this.employees = [
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
    ];
    alert(this._emlployeeService.GetEmployee());
    //  alert("asas")
    // this.employees=this._emlployeeService.GetEmployee();
}

getEmployee(): void {
    this.employees = [
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp01', name: 'Tom', gender: 'Male', annualSalary: 5500, dateOfBirth: '01/01/2010' },
        { code: 'emp08', name: 'Tomi', gender: 'FeMale', annualSalary: 5500, dateOfBirth: '01/01/2010' }
    ];
}
trackByEmpCode(empoyee: any): string {
    return empoyee.code;
}


onRadioButtonSelectionChanged(selectedPerson: string): void {
    this.selectedEmployeeCountRadioButton = selectedPerson;
    console.log("This " + this.selectedEmployeeCountRadioButton);

}
getTotalEmployeeCount(): number {
    return this.employees.length;
}
getTotalMaleEMployeeCount(): number {
    return this.employees.filter(e => e.gender == "Male").length;
}
getTotalFemaleEMployeeCount(): number {
    return this.employees.filter(e => e.gender == "FeMale").length;
}

}

删除
私人电子邮件服务:员工服务在构造函数上


通过执行
构造函数(private employeeService:employeeService){
您已经声明了
\uEmployeeService
属性。

这里有两个问题

首先是打字错误,
\u emlployeeseservice

其次是:

在您的
EmployeeList
组件类中,您使用以下行声明一个新的
EmployeeService

private _emlployeeService: EmployeeService;
这是不必要的,因为Angular的依赖项注入已经给了您一个
EmployeeService
类的实例,您可以在这里的构造函数中请求它:

constructor(private _employeeService: EmployeeService)

您正在声明自己的实例已声明,但未实例化,因此它是
未定义的
。在调用
GetEmployee
方法的地方,正在使用的是未定义的
EmployeeService

感谢您的帮助。它在删除“private\u EmployeeService:EmployeeService;”