Angular: отправить форму с данными и изображением - PullRequest
0 голосов
/ 10 июня 2019

У меня есть форма на основе шаблона с некоторыми полями (например, имя, день рождения, место и т. Д.).Изображение также должно быть загружено.Не все поля обязательны для заполнения.

Я пробовал это с объектом formData.Каждое поле будет добавлено как: fileUploadForm.append('place', this.model.place); Это работает, если у поля места есть вход.Если он пуст, у меня есть "undefined".

Правильно ли работать с объектом 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(
    ...
}

}

1 Ответ

0 голосов
/ 10 июня 2019

Вы можете использовать операторы if, например if (this.file) fileUploadForm.append('picture', this.file);. Лучше всего использовать угловые реактивные формы, проверьте этот пример слаблица угловая реактивная форма

...