Что вы можете сделать, это добавить свойство position
к вашим опциям .Затем все, что вам нужно сделать, это добавить событие onChange
и изменить порядок selectedOptions со свойством position
.
HTML
<p-multiSelect [options]="cars" [(ngModel)]="selectedCars1" [panelStyle]="{minWidth:'12em'}" (onChange)="reorderValues($event)"></p-multiSelect>
TS
// add position property
this.cars.forEach(function (car, i) {
car.value = { position: i, value: car.value };
});
и
reorderValues(event) {
this.selectedCars1.sort(function (a: any, b: any) { return (a.position > b.position) ? 1 : ((b.position > a.position) ? -1 : 0); });
}
Редактировать
Если вы хотите сделать этот множественный выборполе обязательно , добавьте в него подтверждение.
validateForm() {
this.showMultiselectRequiredMessage = (this.selectedCars1.length === 0) ? true : false;
}
См. StackBlitz