我对我正在经历的一个问题感到非常困惑。我正在尝试将模型发送到post请求。但是,当我在浏览器中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;
}
}
}
发布于 2019-03-26 18:02:26
看起来您正在向model传递默认的空值
在saveTemp()中,您为本地变量赋值,但不将该变量赋值给模型。
你能试试这样的东西吗?
protected initModel() {
this.model = {
basics: this.model.basics
retirements: this.model.retirements
risk: this.model.risk
users: this.model.users
};
}
发布于 2019-03-26 18:20:19
当您使用console.log(this.model);
时,很可能模型对象是默认的(全部为空),因此您可以看到所有的空值,而无需在控制台中展开该对象。在此之后,您立即将模型数据发布到API,您的服务器将收到空值。(如果您在this.http.post
上放置了一个断点,并在console中展开您的对象,您也会看到全部为空。)
我假设你的saveTemp
函数的“基本”情况是在你调用API之后触发的,所以你会在展开对象后看到控制台中的值(如果对象内容在控制台中打印出来后被更新,你可以通过展开它来看到更新)。
请确保在更新this.model后调用该接口。
https://stackoverflow.com/questions/55363229
复制相似问题