我有一个拥有球员姓名和细节的足球队。我打开一个模型来编辑玩家的详细信息。
当我设置新数据然后触发补丁请求时,数据似乎编辑对象数组中的最后一项而不是我正在编辑的特定项。
我的组件中有一个非常基本的设置,从那里发送补丁而不是我的服务,但是现在,我只需要看它工作。我可以稍后正确设置。
关于为什么会发生这种情况的任何想法?
我有一种感觉它可能是循环?
getHomeTeam(): void {
this.HometeamService.getHomeTeam().subscribe(hometeam => {
this.hometeam = hometeam;
for (let i =0; i < hometeam.length; i++) {
this.player_id = hometeam[i].id;
}
});
}
更新
因此修复非常简单,感谢@ robert的帮助,我需要将hometeam.id传递给补丁请求而不是this.player_id
updatePlayer(hometeam) {
let player_id = hometeam.id;
this.http.patch('https://sidelineapp.io/demo/api/1.1/tables/home_team/rows/' + hometeam.id, hometeam).subscribe(status => {
console.log(hometeam.id);
this.getHomeTeam();
this.ngxSmartModalService.close('playerModal');
});
}
模态数据正确呈现,因此非常确定它不在视图中,但如果这可能是问题,则很乐意共享表单。
任何帮助将不胜感激。
您需要进行两项更改:
删除此for循环:
for (let i =0; i < hometeam.length; i++) {
this.player_id = hometeam[i].id;
}
而不是this.player_id使用hometeam.id像这样:
updatePlayer(hometeam) { this.http.patch('https:some_url/' + this.hometeam.id, hometeam)