У меня динамическая форма с различными типами полей. Есть раскрывающееся поле, которое я показываю с помощью ion-select . ion-select-options должен быть получен с сервера. Я делаю это так:
код шаблона выглядит так:
<form [formGroup]="form">
<div *ngFor="let item of items;" class="form-row">
<ion-list>
<!-- SELECTION FIELD -->
<ion-item no-lines *ngIf="item.controlType === 'dropdown'" >
<ion-label position="floating">{{ item.label }}</ion-label>
<ion-select [formControlName]="item.key" [disableControl]="enableOrdisable(item)">
<ion-select-option *ngFor="let opt of (getSelectOptions(item) | async)?.result; let i = index" value="{{ opt.key }}" >{{ opt.value }}</ion-select-option>
</ion-select>
</ion-item>
<!-- TextBox FIELD -->
<ion-item no-lines *ngIf="item.controlType === 'textbox'">
<ion-label position="floating">{{ item.label }}</ion-label>
<ion-input placeholder="Enter {{ item.key }}" [formControlName]="item.key" [id]="item.key" [type]="item.type" [disableControl]="enableOrdisable(item)"></ion-input>
</ion-item>
<!-- TextArea FIELD -->
<ion-item no-lines *ngIf="item.controlType === 'textarea'">
<ion-label position="floating">{{ item.label }}</ion-label>
<ion-textarea placeholder="Enter {{ item.key }}" [formControlName]="item.key" [disableControl]="enableOrdisable(item)"></ion-textarea>
</ion-item>
<!-- CheckBox or Ion-Toggle FIELD -->
<ion-item no-lines *ngIf="item.controlType === 'checkbox'">
<ion-label position="floating">{{ item.label }}</ion-label>
<ion-toggle slot="end" [formControlName]="item.key" (ionChange)="onChange($event, item.key)"></ion-toggle>
</ion-item>
<!-- Section Start FIELD -->
<p *ngIf="item.controlType === 'dropstart'">{{ item.label }}</p>
</ion-list>
</div>
</form>
Здесь опции ion-select должны быть получены с сервера, я делаю это так:
getSelectOptions(item: any): Observable<any> {
const payload = PAY_LOAD_HERE;
const url = SERVER_URL + SOME_END_POINT;
return return this.http.post(`${url}`, payload);
}
но я не получаю никакого ответа с этим.