我有一组要渲染的“字段”对象。当 field.type 是 date 我想渲染一个 ngx-bootstrap/datepicker 字段。我的日期字段的 JSON 对象如下所示:
{
"field": {
"name": "date_of_occurrence",
"label": "Date of occurrence",
"valueType": "date",
"type": "custom",
"settings": {
"required": false
},
"organisation": 1,
},
"size": 4
}
我正在尝试像这样渲染它:
<form *ngIf="complexForm" name="form" (ngSubmit)="complexForm.valid && send()" [formGroup]="complexForm" novalidate>
<div *ngIf="fieldValue.field.valueType == 'date'" class="form-group">
<label>{{fieldValue.field.label}}:</label>
<div class="input-group">
<input [required]="fieldValue.field.settings.required" type="text" id="complexForm.controls[fieldValue.field.name]" class="form-control date-input" bsDatepicker [(ngModel)]="fieldValue.value">
<label for="complexForm.controls[fieldValue.field.name]" class="input-group-btn btn btn-primary" (click)="dp.toggle()"><i class="fa fa-calendar" aria-hidden="true"></i></label>
<span style="display: inline-block">
<datepicker #dp [(ngModel)]="fieldValue.value" style="display: block"></datepicker>
</span>
</div>
</div>
</form>
但我得到这个错误:
ngModel 不能用于使用父 formGroup 指令注册表单控件。尝试改用 formGroup 的合作伙伴指令“formControlName”。
我看到 datepicker 示例使用“bsValue”来绑定,但我不想硬编码它,因为我的组件简单地呈现了数组中的任何“字段”,并且应该将值绑定回该数组的 value 属性。直到第一次保存值属性不存在。
我究竟做错了什么?