Раскрытие Angular2 + и PrimeNG;преобразовать объект из и в пользовательское значение перед загрузкой и отправкой формы - PullRequest
0 голосов
/ 29 октября 2019

Можно ли использовать 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 свойства, без какого-либо успеха.

...