首页 > 解决方案 > 如何将响应(键值对)映射到角度发布请求 URL?

问题描述

在 Angular 中,我发送了一个 http get 请求,其响应如下:

{ "name1":"id1", "name2":"id2", "name3":"id3" }

现在我已经在我的反应表单的选择字段中映射了这个响应,这个下拉列表显示了我从上述响应中获得的名称列表。(例如,name1、name2、name3)

现在的要求是,我必须将此表单提交到应根据我从表单中的选择字段中选择的名称动态选择 ID 的 URL。

(例如,如果我选择name1并点击提交按钮,则发布请求应发送到“http://url/ id1 ”)

如何将 get 请求的响应映射到我的 url 以发送 post 请求?请帮忙,提前谢谢!!!

标签: angulartypescripthttpdata-bindingstring-interpolation

解决方案


在您的 api 服务中创建 post 方法:

     serverUrl = "http://url/"
    
     sendPostRequest(id: string, body : MappedObject): Observable<any> {
        return this.http.post(this.serverUrl + id,body );
      }

在您的 component.ts 中:

   postForm!: FormGroup;
  
        constructor(private _apiService: ApiService,private formBuilder: FormBuilder) {}
        
          ngOnInit() {
          this.postForm = this.formBuilder.group({
            name1: [''],
            name2: [''],
          });
  
        }
        
        
ngSubmit() {     
 

this._apiService.sendPostRequest(this.postForm.controls.name1.value,this.postForm.value).subscribe(
            (res: any) => {
              console.log('Success');
            },
            (error) => {
              console.log(error);
            }
          );
        }
      }
      }

When you click on submit button, call the ngSubmit() method

推荐阅读