Angular 组件EmployeedetailComponent的模板中出错
我是Angular的新手,正在尝试使用此链接构建一个小型crud应用程序 我完全按照上面提到的那样做了。我犯了一个我似乎无法理解的错误。 错误如下:Angular 组件EmployeedetailComponent的模板中出错,angular,typescript,Angular,Typescript,我是Angular的新手,正在尝试使用此链接构建一个小型crud应用程序 我完全按照上面提到的那样做了。我犯了一个我似乎无法理解的错误。 错误如下: ERROR in src/app/employeedetail/employeedetail.component.html:7:110 - error TS2554: Expected 1 arguments, but got 0. <button pButton type="button" label="
ERROR in src/app/employeedetail/employeedetail.component.html:7:110 - error TS2554: Expected 1
arguments, but got 0.
<button pButton type="button" label="Delete" icon="pi pi-times" class="ui-button-secondary"
(click)="deleteEmployee()"></button>
~~~~~~~~~~~~~~
src/app/employeedetail/employeedetail.component.ts:8:16
8 templateUrl: './employeedetail.component.html'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error occurs in the template of component EmployeedetailComponent.
src/app/employeedetail/employeedetail.component.html:7:110中出现错误-错误TS2554:1
参数,但得到0。
~~~~~~~~~~~~~~
src/app/employeedetail/employeedetail.component.ts:8:16
8 templateUrl:“./employeedetail.component.html”
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
组件EmployeedetailComponent的模板中出错。
共享我的文件:
EmployeeDetail.component.ts:
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { Employee } from 'src/entity/employee';
import { Router } from '@angular/router
import { EmployeeserviceService } from '../services/employeeservice.service';
@Component({
selector: 'app-employeedetail',
templateUrl: './employeedetail.component.html'
})
export class EmployeedetailComponent {
// Input variable to display properties of an employee
@Input() employee: Employee;
// Output variable used to tell the parent component to refesh the employee list after successful
delete
@Output() refreshEmployeeList: EventEmitter<boolean> = new EventEmitter<boolean>();
// Service injected in constructor
constructor(private employeeService: EmployeeserviceService, private router: Router) {
}
// Method to edit employee details
editEmployee(){
this.router.navigate(["EditEmployee/"+ this.employee.id]);
}
deleteEmployee(employeeToBeDeleted: Employee){
var result = confirm("Are you sure, you want to delete this Employee?");
if (result) {
this.employeeService.deleteEmployee(this.employee.id);
this.refreshEmployeeList.emit(true);
this.router.navigate(["Employees"]);
}
}
}
从'@angular/core'导入{Component,Input,Output,EventEmitter};
从'src/entity/Employee'导入{Employee};
从'@angular/Router'导入{Router}
从“../services/employeeservice.service”导入{EmployeeserviceService};
@组成部分({
选择器:“app employeedetail”,
templateUrl:“./employeedetail.component.html”
})
导出类EmployeedetailComponent{
//输入变量以显示员工的属性
@输入()职员:职员;
//输出变量,用于告诉父组件在成功执行后参照员工列表
删除
@Output()refreshEmployeeList:EventEmitter=new EventEmitter();
//构造函数中注入的服务
构造函数(私有employeeService:EmployeeserviceService,私有路由器:路由器){
}
//用于编辑员工详细信息的方法
编辑员工(){
this.router.navigate([“EditEmployee/”+this.employee.id]);
}
删除员工(员工待删除:员工){
var result=confirm(“您确定要删除此员工吗?”);
如果(结果){
this.employeeService.deleteEmployee(this.employee.id);
this.refreshEmployeeList.emit(true);
this.router.navigate([“Employees”]);
}
}
}
Employeedetail.Component.html
<p-card [style]="{width: '360px'}" styleClass="ui-card-shadow">
<div>{{employee.firstname}} {{employee.lastname}}</div>
<div>Age: {{employee.age}} Years</div>
<div>{{employee.designation}}</div>
<footer>
<button pButton type="button" label="Edit" icon="pi pi-check" style="margin-right: .25em"
(click)="editEmployee()"></button>
<button pButton type="button" label="Delete" icon="pi pi-times" class="ui-button-secondary"
(click)="deleteEmployee()"></button>
</footer>
</p-card>
{{employee.firstname}{{employee.lastname}}
年龄:{{employee.Age}}年
{{雇员名称}
如果您想查看更多文件,请访问上述链接。
有人能帮我解决这个错误吗?这是因为您已将该方法定义为:
deleteEmployee(employeeToBeDeleted: Employee) {
...
}
但是调用它而不向它传递参数。将参数传递给函数,如下所示:
<button pButton type="button" label="Delete" icon="pi pi-times"
class="ui-button-secondary"
(click)="deleteEmployee(employee)"> <-- change made here
</button>
检查您的方法删除员工
签名。您的方法希望获得类型为Employee
的参数,但在模板中您没有提供任何参数。您必须删除此参数或将其传递到模板中
另外,不要使用var
来声明变量。如果要更改值,请使用let
,否则请使用const
您的deleteEmployee方法中存在问题。请传递参数,它将被修复。哦,是的。这解决了我的问题。非常感谢。这是一个愚蠢的错误。对不起,我是初学者。当然欢迎来到Stackoverflow:-)你说“它将被修复”是什么意思?问题是什么?请把你的答案扩大一点。