Можно ли использовать Angular 8 и раскрывающийся список PrimeNG для преобразования элемента управления до фазы инициализации и перед отправкой формы?
<form [formGroup]="form" (ngSubmit)="onSubmit(form.value)">
<p-dropdown [options]="collection" formControlName="item" optionLabel="label"></p-dropdown>
</form>
class Item {
id: number;
name: string;
}
export class MyComponent implements OnInit {
collection: Item[
{id: 1, label: "first"},
{id: 2, label: "second"},
{id: 3, label: "third"},
{id: 4, label: "fourth"},
{id: 5, label: "fifth"}
];
protected form: FormGroup;
protected fb: FormBuilder;
constructor(protected fb : FormBuilder) {}
ngOnInit() {
this.form = this.fb.group({
/*Here I want to specify the id of the item I want to pass to the dropdown. Does it exist some kind of conversion in PrimeNG's dropdown or in the form to allow this?*/
/*item: new FormControl(items[3]) -> what I have to do*/
item: new FormControl(3) /* -> what I'd like to do*/
})
};
onSubmit(values) {
/*How can I receive the only "item.id", i.e. "3" value instead of the whole Item object?*/
console.log(values.item) /*{id = 3, label = "third"} -> what I receive */
/*console.log(values.item) 3 -> what I'd like to have*/
backend.send(values);
}
}
Я пытался играть с раскрывающимися списками inputId
, selectId
и dataKey
свойства, без какого-либо успеха.