【发布时间】:2018-08-30 10:41:08
【问题描述】:
我的网站上有使用 FormBuilder 的响应式表单。
我有两个具有FormControls 的字段和一个由用户创建的字段数组FormArray。
当我向服务器发送数据时,发现FormArray 发送的不是数组,而是一个字符串,其中列出的项目带有逗号。
如何使用数组向服务器发送数据?
这是我的类方法
formGroup = this.fb.group({
link: [null, [
Validators.required,
Validators.pattern(/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/)
]],
image: [null, Validators.required],
features: this.fb.array([this.fb.control('', Validators.required)])
});
beforeSubmit(): FormData {
const formData = new FormData();
formData.append('link', this.link.value);
formData.append('image', this.image.value);
formData.append('features', this.features.value);
return formData;
}
submit() {
console.log('submit');
const formData = this.beforeSubmit() as FormData;
this.ss.postSite(formData).subscribe(
response => {
console.log(response);
}
);
}
和服务
postSite(input: FormData) {
console.log('posting');
return this.http.post<Site>(this.API_URL, input, this.HEADERS).pipe(
catchError(this.handleError)
);
}
【问题讨论】:
-
请提供用户添加字段到数组的功能
-
它只是将空的 FormControl 推送到 features 数组
标签: javascript angular forms api typescript