У меня есть приложение, в котором я могу получить данные в формате массива.поэтому я хочу связать значения массива с соответствующим именем formcontrol.Может ли кто-нибудь помочь мне продолжить это.
HTML:
<div formArrayName="InformationSource">
<div class="col-sm-12 no-padd inline-block" *ngFor="let itemrow of emrMedicationdetailsForm.get('InformationSource').controls;let i = index;" [formGroupName]="i">
<div class="col-sm-12 no-padd inline-block">
<div class="col-sm-4 pull-left m-b10 m-t10">
<label class="col-sm-5 pull-left col-form-label g-color-gray-dark-v2 text-sm-left no-padd">Date Time</label>
<div class="col-sm-7 pull-left no-padd">
<p-calendar formControlName="Date" [monthNavigator]="true" [yearNavigator]="true" yearRange="1910:2020" showButtonBar="true"
dateFormat="mm-dd-yy" placeholder="mm-dd-yyyy" [showIcon]="true"></p-calendar>
</div>
</div>
<div class="col-sm-4 pull-left m-b10 m-t10">
<label class="col-sm-5 pull-left col-form-label g-color-gray-dark-v2 text-sm-left no-padd">Period</label>
<div class="col-sm-7 pull-left no-padd">
<input type="text" formControlName="Note1" maxlength="50" placeholder="Period">
</div>
</div>
<div class="col-sm-4 pull-left m-b10 m-t10">
<a class="col-sm-2 pull-left m-b10 m-t10 delbtn" *ngIf="emrMedicationdetailsForm.get('InformationSource').controls.length >1" (click)="deleteDetails(i)">
<i class="fa fa-trash trash"></i>
</a>
</div>
</div>
</div>
</div>
TS:
private medicationFormInit() {
//Add
if (!this.medicationDetails) {
this.emrMedicationdetailsForm = this.FB.group({
InformationSource: this.FB.array([]),
});
this.periodNote.controls = [];
} else {
// edit
InformationSource: this.medicationDetails.data.InformationSource,
});
for (let lang of JSON.parse(this.medicationDetails.data.InformationSource)) {
let group = this.createMedicationInformation();
group.get('Date').setValue(lang.Date);
group.get('Note1').setValue(lang.Note1);
}
}
}
private createMedicationInformation() {
return this.FB.group({
Date: [''],
Note1: [''],
});
}
public get periodNote(): FormArray {
return <FormArray>this.emrMedicationdetailsForm.controls['InformationSource'];
}
addDatePeriod(): void {
this.periodNote.push(this.createMedicationInformation());
}
public preventCommunicationEmpty() {
if (!this.periodNote.length) {
let group = this.createMedicationInformation();
group.reset();
this.datePeriodForm.setControl('InformationSource', this.FB.array([group]));
}
}
Консоль:
[{"Date":"2018-10-15T18:30:00.000Z","Note1":"34"},{"Date":"2018-10-29T18:30:00.000Z","Note1":"67"}]
Итак, яя получаю консольные данные для источника информации из бэкэнда, так что кто-нибудь может мне помочь в этом, я буквально поражен.