Здесь я использую простую динамическую форму.
Модель
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 есть данные. Как я могу решить эту асинхронную проблему?