角反应形式选择默认值和对象ID

时间:2018-07-11 16:45:50

标签: node.js angular mongoose angular-reactive-forms

我有一个默认值的选择器,实际上是选择该选项的消息。我很难验证此选项,因为该字段与数据库中另一个集合的对象ID(mongoose-express js)相关联。

<div class="col-lg-6 form-group">
  <label for="professional_t">Assign professional</label>
  <select formControlName="professional_t" id="professional_t" name="professional_t" class="form-control">
    <option value="">Select Professional</option>
    <option *ngFor="let p of professionals" [value]="p._id"> {{ p.name}} </option>
  </select>
</div>

在组件中:

this.forma = new FormGroup({
  /* ... */
  'turno': new FormGroup({
    'date_t': new FormControl(null),
    'professional_t': new FormControl(''),
  })
})

如果我将其设置为null,它可以工作,但是在第一次出现的情况下不会显示该消息。

验证错误:

professional_t:
    kind: "ObjectID"
    message: "Cast to ObjectID failed for value "" at path "professional_t""
    name: "CastError"
    path: "professional_t"

1 个答案:

答案 0 :(得分:0)

尝试为默认选择选项添加一些值,而不要保留空白。

也许您可以尝试添加一些唯一的数字或字符串,然后以该字段的反应形式初始化该值。

示例:

<div class="col-lg-6 form-group">
  <label for="professional_t">Assign professional</label>
  <select formControlName="professional_t" id="professional_t" name="professional_t" class="form-control">
    <option value="DefaultProfessionaValue">Select Professional</option>
    <option *ngFor="let p of professionals" [value]="p._id"> {{ p.name}} </option>
  </select>
</div>



this.forma = new FormGroup({
  /* ... */
  'turno': new FormGroup({
    'date_t': new FormControl(null),
    'professional_t': new FormControl('DefaultProfessionalValue'),
  })
})