我正在学习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() {
}
}
答案 0 :(得分:0)
您尚未像定义exemployees
数组那样定义employees
数组。
在组件顶部:
export class AppComponent {
title = 'template-driven';
employees;
exemployees = [];
通过这种方式,您将其制成数组,并且它获得了.push()
函数,因为它是浏览器固有的。
答案 1 :(得分:0)
您是否尝试过没有这两行?
employees;
exemployees;
在JavaScript中,我们不需要声明类变量。 我们可以直接使用-
this.employees=emp_service.getEmployeee();