У меня есть массив данных.Что я хочу от представления, так это иметь поле ввода для количества объектов в массиве, и когда страница обновляется, что бы она ни сохранялась в полях ввода, тогда это значение отображается как значение в поле ввода.
data - [{value: 'value1', timeTitle: ''}, {value: 'value2', timeTitle: ''}]
HTML
<div>
<ion-item>
<ion-label>Select Date</ion-label>
<ion-datetime min={{minDate}} displayFormat="MM/DD/YYYY" [(ngModel)]="myDate" formControlName="dateTime"></ion-datetime>
</ion-item>
<ion-list *ngFor="let detail of details; let i=index" formArrayName="times">
<ion-item [formGroupName]="i">
<ion-label>{{detail.timeTitle}}</ion-label>
<ion-datetime displayFormat="h:mm A" formControlName="time"></ion-datetime>
</ion-item>
<ion-item>
<ion-label>{{detail.purpose}}</ion-label>
</ion-item>
</ion-list>
</div>
<button ion-button full (click)="next()" [disabled]="!timeForm.valid">Next</button>
TS
ngOnInit() {
this.timeForm = this.formBuilder.group({
dateTime: [''],
times: this.formBuilder.array([this.createTime()])
})
this.addTimes()
this.storage.get('saveTimes').then(res => {
//DO STUFF HERE
})
}
createTime(): FormGroup{
return this.formBuilder.group({
time: ['', Validators.required]
})
}
addTimes() {
const time = this.createTime()
this.times.push(time)
}
get times(): FormArray {
return this.timeForm.get('times') as FormArray
}
next() {
this.times = {
requestedTime1: this.timeForm.value.times[1],
requestedTime2: this.timeForm.value.times[0]
}
this.storage.set('saveTimes', this.times)
}