For COMBOBOX please use the following structure where block (A) has proper default value.
{
"uiWidget": "COMBOBOX",
"id": "7",
"name": "Order Type",
"key": "pl.export.label.orderType",
"defaultValue": "DEFAULT", // ------- (A)
"width": "250",
"isEnabled": "true",
"item": [
{
"key": "00",
"value": "DEFAULT"
},
{
"key": "01",
"value": "WILL CALL PICK UP"
}
]
}
corresponding COMBOBOX html code
<p-autoComplete
#dropdownValue
[inputId]="uiItems.id"
[dropdown]="true"
[name]="uiItems.id"
[(ngModel)]="arrays.field[index].defaultValue"
[suggestions]="getOptions(uiItems.item)">
</p-autoComplete>
In this case it will update the defaultValue attribute of the "uiItems"
All code of app.component.html
<form #addPartDialogForm="ngForm" autocomplete="off">
<div *ngFor="let arrays of buildUI">
<div *ngFor="let uiItems of arrays.field; let index = index">
<br/>
<div *ngIf="uiItems.uiWidget === 'TEXTINPUT'">
<div>
<span class="ui-inputgroup-addon"> {{uiItems.name}}</span>
<input [name]="uiItems.id" [(ngModel)]="arrays.field[index].defaultValue"
[type]="uiItems.type" pInputText>
<pre style="color:red;">{{arrays.field[index] | json}}</pre>
</div>
</div>
<br/>
<div *ngIf="uiItems.uiWidget === 'COMBOBOX'">
<div>
<span class="ui-inputgroup-addon"> {{uiItems.name}}</span>
<p-autoComplete #dropdownValue [inputId]="uiItems.id"
[dropdown]="true"
[name]="uiItems.id"
[(ngModel)]="arrays.field[index].defaultValue"
[suggestions]="getOptions(uiItems.item)">
</p-autoComplete>
<pre style="color:red;">{{arrays.field[index] | json}}</pre>
</div>
</div>
<div *ngIf="uiItems.uiWidget === 'CHECKBOX'">
<div>
<span class="ui-inputgroup-addon"> {{uiItems.name}}</span>
<p-checkbox #checckbox
[name]="uiItems.id"
[binary]="true"
[inputId]="uiItems.id"
[(ngModel)]= "uiItems.defaultValue"
></p-checkbox>
</div>
</div>
</div>
</div>
</form>
please check the inline screenshot.