【发布时间】:2019-07-27 09:22:20
【问题描述】:
我有收集玩家和收集团队。我想将负载球员添加到团队中。
在创建团队的 HTML 中,我从玩家那里加载数据,用户可以选择加载玩家:
<mat-form-field>
<mat-select placeholder="Goalkeepers" formControlName="goalkeeper">
<mat-option *ngFor="let player of goalkeepers" [value]="player">
{{player.name}} {{player.surename}} ({{player.price}}M)
</mat-option>
</mat-select>
<mat-error *ngIf="form.get('goalkeeper').invalid">Pleasse enter a goalkeeper.</mat-error>
</mat-form-field>
在 user.component.ts 我保存数据。 这是从播放器加载数据到 HTML:
this.playersService.getPlayersForTeam();
this.playersSub = this.playersService
.getPlayerUpdateListener()
.subscribe((playerData: {players: Player[]}) => {
this.players = playerData.players;
});
这里是保存数据到数据库:
onSaveUserTeam() {
this.userTeamsService.addUserTeam(
this.form.value.name,
this.form.value.goalkeeper,
this.form.value.goalkeeper_sub,
this.form.value.midfielder1,
... etc ...
);
我没有错误地将数据发送到数据库。当我只有这个输入时:
<input matInput type="text" formControlName="goalkeeper" placeholder="UserTeam goalkeeper">
<mat-error *ngIf="form.get('goalkeeper').invalid">Please enter a userTeam goalkeeper.</mat-error>
</mat-form-field>
就像文本一样,当我写一些东西输入然后发送到数据库时,一切都很好。但是现在,当我从玩家集合中选择玩家时,我会在数据库中输入如下内容:
{
_id: ObjectId('5c7ecdd75c09e23d903f1bb9')
name: "Test"
goalkeeper: "[object Object]"
goalkeeper_sub: "[object Object]"
}
这是一个问题,因为我需要具有相同的特定玩家详细信息,例如 playerID,以便稍后用于编辑团队等... 将数据发送到数据库时我做错了什么? 感谢您的帮助!
【问题讨论】:
-
我建议先检查发送到服务的数据以及其结构是否正确。
-
在team.service中,我有这样的东西:ctrlv.cz/shots/2019/03/05/T1rh.png
-
您使用表单数据而不是 JSON 有效负载是否有原因? :) 检查 Chrome 中的网络选项卡(或您选择的浏览器中的等效项),查看实际发送的有效负载。
-
对不起,你是这个意思吗? ctrlv.cz/shots/2019/03/05/3EaC.png,还是这个? ctrlv.cz/shots/2019/03/05/VFop.png
标签: node.js angular mongodb express