首页 > 解决方案 > Angular 8:反应形式在更新时将 ObjectID 转换为字符串

问题描述

我有一个更新表单,其中有一个 ObjectID 类型的参考 ID。从更改为字符串更新时如何保留 ObjectID?我尝试使用 bson 包将其转换回来,结果在我 console.log 我的 form.value 时显示:

id: ObjectId {id: Uint8Array(12)}

这基本上是我真正想要的。但是当我在 mongo compass 中检查文档时,它仍然作为字符串插入。

有没有办法来解决这个问题?也许其他解决方案?

仅供参考我使用环回作为我的后端并使用自动生成的 CRUD 控制器

使用以下代码更新:

更新表格.ts

//create formcontrol    
this.form = this._formBuilder.group({
                field1: this._formBuilder.array([
                ])

//patch value
 setValue() {
        let control = this.form.get('field1') as FormArray;
            this.data$.field1.forEach(x => {
                control.push(this._formBuilder.group({
                    id: new ObjectID(x.id),
                    name: x.name
                }))
        })
    }

updateform.html

<div formArrayName="field1"
   *ngFor="let field of form.get('field1')['controls']; let i = index;">
    <div [formGroupName]="i">
        <mat-form-field>
           <input matInput placeholder="Ref. ID" formControlName="id">
        </mat-form-field>
    </div>
 </div>

标签: angularmongodbloopback

解决方案


推荐阅读