错误TypeError:“ this.exemployees未定义”

时间:2019-08-26 07:35:01

标签: angular

我正在学习Angular,在实践中遇到错误。请帮助我解决此错误,并了解引起该错误的原因。

我已经创建了一个表格,其中将添加员工详细信息,并且在按下按钮时,将添加新员工并将其显示在下表中。

通过单击该雇员旁边的“前雇员”按钮,该雇员将被添加到前雇员数组中,并将显示在前雇员数组中。

点击“前雇员”按钮时,出现错误。

我尝试调试,但是不明白是什么原因造成的。

以下是控制台错误:

  

错误TypeError:“ this.exemployees未定义”
  错误上下文
  对象{视图:{…},nodeIndex:108,nodeDef:{…},elDef:{…},elView:{…}}

代码:

parentcomponent.ts

export class AppComponent {
  title = 'template-driven';
  employees;
  exemployees;

  constructor(emp_service:EmployeeServiceService) {
      this.employees = emp_service.getEmployeee();
  }

  add_ex_employeee(val) {
      this.exemployees.push(val);
  }

  add_employee(empO) {
      this.employees.push(empO.value);
  }
}

parent component html

<app-employees [exemployees]="exemployees" (exempadded)="add_ex_employeee($event)" [employees]="employees"></app-employees>

childcomponent.ts

export class EmployeesComponent implements OnInit {

   @Input('employees') employees;
   @Output('exempadded') exempadded = new EventEmitter();
   @Input('exemployees') exemployees;

   Exclient(ind) {
       this.exempadded.emit(this.employees[ind]);
   }

   ngOnInit() {
   }
}

2 个答案:

答案 0 :(得分:0)

您尚未像定义exemployees数组那样定义employees数组。

在组件顶部:

export class AppComponent {
  title = 'template-driven';
  employees;
  exemployees = [];

通过这种方式,您将其制成数组,并且它获得了.push()函数,因为它是浏览器固有的。

答案 1 :(得分:0)

您是否尝试过没有这两行?

employees;
exemployees;

在JavaScript中,我们不需要声明类变量。 我们可以直接使用-

this.employees=emp_service.getEmployeee();