Динамическая реактивная форма с опциями выбора с вызовом API - PullRequest
0 голосов
/ 02 января 2019

У меня динамическая форма с различными типами полей. Есть раскрывающееся поле, которое я показываю с помощью 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);
}


но я не получаю никакого ответа с этим.

...