Angular 如何基于Submit()上的角度形式定义对象

Angular 如何基于Submit()上的角度形式定义对象,angular,typescript,angular-httpclient,Angular,Typescript,Angular Httpclient,在我的Angular应用程序中,我能够发送PUT请求,成功更新JSON文件 现在,我试图发送一个POST请求,向这个JSON文件添加另一个对象 我单击一个“编辑”按钮&该按钮用现有记录填充一些输入字段。然后进行更改并单击“保存”以成功更新JSON 现在,如果我没有单击“编辑”按钮,只需输入一些新数据,然后单击“保存”,则会出现以下错误: 错误类型错误:无法设置未定义的属性“fullName” HTML格式: <form [formGroup]="signUpForm" (ngSubmit)

在我的Angular应用程序中,我能够发送PUT请求,成功更新JSON文件

现在,我试图发送一个POST请求,向这个JSON文件添加另一个对象

我单击一个“编辑”按钮&该按钮用现有记录填充一些输入字段。然后进行更改并单击“保存”以成功更新JSON

现在,如果我没有单击“编辑”按钮,只需输入一些新数据,然后单击“保存”,则会出现以下错误:

错误类型错误:无法设置未定义的属性“fullName”

HTML格式:

<form [formGroup]="signUpForm" (ngSubmit)="onSubmit()">
    <button type="submit" class="btn btn-primary [disabled]="signUpForm.invalid">
Save
</button>
</form>
当代码到达
mapFormValuesToEmployeeModel()方法的第一行时,代码正在崩溃

以下是员工界面:

export interface IEmployee {
  id: number;
  fullName: string;
  email: string;
  phone?: number;
  contactPreference: string;
  skills: ISkill[];
}
有人能告诉我需要做些什么样的改变才能让POST正常工作吗


我认为问题在于我需要在某个地方分配
employee
对象的ID,但我不确定具体在哪里执行此操作。

尝试在使用
employee
对象之前初始化它。也许是这样:

// these should be some default values, they will be replaced later
employee: IEmployee = { id: -1, fullName: '', email: '', contactPreference: '', skills: []};

然后可以在
mapFormValuesToEmployeeModel
方法中使用它


旁注:如果您试图将表单中的值绑定到
employee
变量,您可能需要使用该指令来实现此目的。

我假设
mapFormValuesToEmployeeModel()
方法中发生了错误?@wentjun Hi,是的。该错误显示在该对话框的第一行method@lealceldeiro您好,
signUpForm
中的值包含我要分配给
employee
对象的数据只需将employee初始化为
employee:ieemploye={}
使trick@Eliseo是的,那肯定行得通。我这样发布它是因为如果你没有提供界面中定义的所有必需参数,你就可以了。你说得对,那么:,
employee1:IEmployee={}as IEmployee
?@Eliseo是的,就是这样;)谢谢
// these should be some default values, they will be replaced later
employee: IEmployee = { id: -1, fullName: '', email: '', contactPreference: '', skills: []};
employee: IEmployee = { } as IEmployee;