我正在尝试在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个。”
答案 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})
}