Primeng динамическая форма выпадающего списка (DynamicSelectModel) установить проблему с данными - PullRequest
0 голосов
/ 15 марта 2019

Здесь я использую простую динамическую форму.

Модель

 dynamicSelectModelBirims: SelectModel[] = [];

 export class SelectModel {
    label: string;
    value: any;
 }

Конструктор

constructor(private formService: DynamicFormService, private helperService: HelperService,
    private birimlerService: BirimlerService) {

    setTimeout(() => {
      this.dynamicFormCreate();
      this.formGroupValue = this.formService.createFormGroup(this.formModel);

    }, 100);

    setTimeout(() => {
      this.getBirims();

    }, 1000);

  }

новая DynamicSelectModel

 FORM_MODEL.push(new DynamicSelectModel<string>({
      id: element.propertyName,
      label: element.displayName,
      placeholder: element.displayName,
      options: this.dynamicSelectModelBirims, // or this.getBirims();

      //value: "Aktif",
      //disabled: false,

    }))

getBirims () {} и DynamicSelectModel push

 getBirims() {
this.birimlerService.get().subscribe(
  (data: any) => {
    if (data.statusCode == 200) {
      this.birimler = data;


      this.birimler.data.forEach(element => {
        this.dynamicSelectModelBirims.push({
          label: element.birimAdi,
          value: element.id
        });
      });
    }
  }
);

HTML

<code> <div class="overflow-hidden content-margin content-padding" style="width: 100%;">
    <!-- <pre>{{ dynamicform | json }}
-> </ dynamic-primeng-form> <! - <button type = "button" class = "" icon = "pi pi-check" label = "Kaydet"> ->

пустое выпадающее изображение

Динамическая форма, в которой я предоставил примеры кода выше, должна быть загружена с раскрывающимися данными перед загрузкой html-страницы. Но из-за того, что html-страница была ранее установлена, страница загружается с пустым раскрывающимся списком, прежде чем служба установит данные в объект. Таким образом, раскрывающийся список пуст. Но когда я печатаю с console.log, у объекта dynamicSelectModelBirims есть данные. Как я могу решить эту асинхронную проблему?

...