我有一个模板驱动的表单,其中包含一些字段(例如,姓名,生日,地点等)。图片也应该上传。并非所有字段都是必填字段。
我尝试了formData对象。每个字段都将添加为:
fileUploadForm.append('place', this.model.place);
如果场所字段具有输入,则此方法有效。如果为空,我有一个“未定义”。
使用formData对象是对的还是其他方法? 如何仅将填充的字段添加到formData对象?
export class CreateComponent implements OnInit {
model: any = {};
fileChanged(event) {
this.file = event.target.files[0];
}
onSubmit() {
let fileUploadForm: FormData = new FormData();
fileUploadForm.append('picture', this.file);
fileUploadForm.append('name', this.model.name);
fileUploadForm.append('birthday', this.model.birthday);
...
this.CreateService.setData(fileUploadForm)
.subscribe(
...
}
}
答案 0 :(得分:0)
您可以使用if语句,例如if (this.file) fileUploadForm.append('picture', this.file);
。最好的方法是使用角反应形式检查此slackblitz示例angular reactive form