Angular8-从FormData获取值
我想从我的Angular8-从FormData获取值,angular,typescript,Angular,Typescript,我想从我的FormData对象中获取值: 我的弹出窗口中的save()方法,我可以在其中上载文件: 使用有效负载和所选文件创建FormData对象的方法: getFrameworkPayload()方法: 在Observable方法中,我必须将框架ID也传递给服务方法editFramework,但我不能在中传递2个参数 frameworkEdited(editedFramework: FormData): void { this.service.editFramework(editedFram
FormData
对象中获取值:
frameworkEdited(editedFramework: FormData): void {
this.service.editFramework(editedFramework).pipe(
//这里我需要FormData的ID
editFramework(有效负载:FormData):可观察{
返回this.http.put(`${this.url}/${payload['id']}`,payload);
}
因此,我需要从我的有效负载中获取ID:FormData。我尝试了payload.getAll('payload'),但是我得到了一个带有键值的字符串。。。也许我应该以某种方式将这个字符串转换到IFrameworkPayload中并获取get ID???我能想到的最佳选择是重构editFramework()方法,使其接收有效负载,然后在方法内创建FormData,如下所示:
editFramework(payload: IFrameworkPayload): Observable<IFramework> {
const formData = new FormData();
formData.append('payload', JSON.stringify(payload);
if (!isNil(this.fileToUpload)) {
formData.append('file', this.fileToUpload, this.fileToUpload.name);
}
return this.http.put<IFramework>(`${this.url}/${payload['id']}`, formData);
}
save() {
this.frameworkEdited.next(this.getFrameworkPayload());
}
frameworkEdited(payload: IFrameworkPayload): void {
this.service.editFramework(payload).pipe(
如果出于任何原因,您不喜欢这种方法,可以使用FormData.values()方法来获取值。您需要使用JSON.parse()将数据从JSON重新转换为IFrameworkPayload。不过,这似乎是不必要的工作
frameworkEdited(editedFramework: FormData): void {
this.service.editFramework(editedFramework).pipe(
//HERE I NEED ID from FormData
editFramework(payload: FormData): Observable<IFramework> {
return this.http.put<IFramework>(`${this.url}/${payload['id']}`, payload);
}
editFramework(payload: IFrameworkPayload): Observable<IFramework> {
const formData = new FormData();
formData.append('payload', JSON.stringify(payload);
if (!isNil(this.fileToUpload)) {
formData.append('file', this.fileToUpload, this.fileToUpload.name);
}
return this.http.put<IFramework>(`${this.url}/${payload['id']}`, formData);
}
save() {
this.frameworkEdited.next(this.getFrameworkPayload());
}
frameworkEdited(payload: IFrameworkPayload): void {
this.service.editFramework(payload).pipe(