角后请求参数未正确传递

时间:2019-03-26 16:49:24

标签: angular

我正在尝试在Angular中进行发布请求。我需要将模型作为参数传递,但是出现错误。

这是我的代码

型号

  protected initModel() {
    this.model = {
      basics: null,
      retirements: null,
      risk: null,
      users: null
    };
  }

为模型分配值的功能

  saveTemp( args: { tabName: string, tabModel: any } ) {
    switch (args.tabName) {
      case 'basics': {
        this.model.basics = args.tabModel;
        // console.log(this.model.basics);
        break;
      }
      case 'retirement': {
        this.model.retirements = args.tabModel;
        break;
      }
      case 'risk': {
        this.model.risk = args.tabModel;
        break;
      }
      case 'users': {
        this.model.users = args.tabModel;
        break;
      }
      default: {
        break;
      }
    }
  }

发布请求

const token = localStorage.getItem('token');
const headers = new HttpHeaders()
  .set('Authorization', `Bearer ${token}`)
  .set('Content-Type', 'application/json');
const options = { headers: headers };
this.http.post('https://localhost:44345/api/Corporates/Create', this.saveTemp( args: { basic, this.model.basics } ), options)
.subscribe(data => {
  console.log(data);
})

错误是我将带有参数的saveTemp函数传递为发布请求“预期有1个参数,但有2个。”

enter image description here

2 个答案:

答案 0 :(得分:1)

此行无效。 this.saveTemp未正确调用,并且不返回任何值。

this.http.post(URL, this.saveTemp( args: { basic, this.model.basics } ), options)

在发出请求并仅传递模型之前尝试调用saveTemp

this.http.post(URL, this.model, options)

答案 1 :(得分:1)

另一种发送模型的方法

apiUrl:string="";
getLoggedInUser(model:any): Observable<any> {
  const headers = new HttpHeaders({
    'Content-Type': 'application/json',
    'Authorization': 'Bearer token'
  })
  return this.http.post<any>(this.apiUrl,model,{headers:headers})
}