我在公式编辑器中有一个复选框,我想将数据存储在具有更多ID的数据库中。因此,我认为最好的方法是使用Array类型,以便以后在处理输入的ID时使用。 但是在Angular中,matchs.service.ts中有addMatch函数,并且出现错误:
Argument of type 'Player[]' is not assignable to parameter of type 'string | Blob'.
Type 'Player[]' is not assignable to type 'string'.
这是功能,我有问题,播放器是模型:
addMatch(dateOfMatch: Date,
playersPlayed: Array<Player>) {
const matchData = new FormData();
matchData.append("dateOfMatch", dateOfMatch.toString());
matchData.append("playersPlayed", playersPlayed);
this.http
.post<{ message: string; match: Match }>(
"http://localhost:3000/api/matchs",
matchData
)
.subscribe(responseData => {
this.router.navigate(["/"]);
});
}
在我的HTML中,我从用户那里获取数据的位置在这里:
<mat-form-field>
<mat-select formControlName="playersPlayed" placeholder="Players" multiple>
<mat-option *ngFor="let player of players" [value]="player.id">{{player.name}} {{player.surename}} ({{player.teamName}})</mat-option>
</mat-select>
<mat-error *ngIf="form.get('playersPlayed').invalid">Please enter a players who played.</mat-error>
</mat-form-field>
我做错了什么?谢谢。
答案 0 :(得分:1)
来自FormData文档,有关附加函数的value参数:
这可以是USVString或Blob(包括File之类的子类)。
所以我认为在您的情况下,字符串选项将是正确的。我会尝试对Player数组进行字符串化,我想这可能有效:
matchData.append("playersPlayed", JSON.stringify(playersPlayed));