首页 > 解决方案 > 错误类型错误:“this.exemployees is undefined”

问题描述

我正在学习 Angular,在练习过程中我遇到了一个错误。请帮助我解决此错误,并了解导致它的原因。

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

通过单击该员工旁边的“exemployee”按钮,该员工将被添加到 ex-employees 数组中,并将显示在 ex-employees 数组中。

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

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

以下是控制台错误:

错误类型错误:“this.exemployees is undefined”
错误上下文
对象{视图:{...},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() {
   }
}

标签: angular

解决方案


您还没有exemployees像拥有数组那样定义employees数组。

在组件的顶部:

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

通过这种方式,您已将其设为数组,并且它已获得.push()浏览器原生的功能。


推荐阅读