我对自己遇到的问题感到非常困惑。我正在尝试将模型发送到发布请求。但是,当我在浏览器中console.log退出模型时,会看到以下内容。
如果我随后通过单击箭头来扩展控制台结果,则会看到
我的请求失败,因为它看到空值,但实际上有数据。请协助。
我的请求看起来像这样
const token = localStorage.getItem('token');
const headers = new HttpHeaders()
.set('Authorization', `Bearer ${token}`)
.set('Content-Type', 'application/json');
const options = { headers: headers };
console.log(this.model);
this.http.post('https://localhost:44345/api/Corporates/Create', this.model, options)
.subscribe(data => {
console.log(data);
})
型号
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;
}
}
}
答案 0 :(得分:1)
似乎您要将默认的空值传递给模型
和saveTemp()中 您可以将值分配给局部变量,而不会将变量分配给模型。
您可以尝试这样的事情吗?
protected initModel() {
this.model = {
basics: this.model.basics
retirements: this.model.retirements
risk: this.model.risk
users: this.model.users
};
}
答案 1 :(得分:1)
很有可能当您console.log(this.model);
时,模型对象是默认对象(全为null),因此您可以看到所有null值而无需在控制台中扩展该对象。之后,您将模型数据发布到API,并且服务器正在接收空值。 (如果在this.http.post
处设置一个断点,然后在控制台中扩展对象,那么也会看到所有null。)
我认为您的saveTemp
函数的“基本”情况是在调用API后触发的,因此在扩展对象后,您会在控制台中看到值(如果对象内容在控制台中打印后正在更新,则您通过扩展就可以看到更新。)
确保在此模型更新后调用API。