PrimeNG p-orderList отключить множественный выбор элементов
Я использую p-orderList от PrimeNG. По умолчанию атрибут metaKeySelection имеет значение true, что подразумевает необходимость нажатия metaKey(клавиша ctrl) для выбора нескольких элементов. Я скорее искал способ полностью отключить выбор нескольких элементов. Я должен иметь возможность выбрать ТОЛЬКО ОДИН пункт в упорядоченном списке. Нет атрибута metaKey, доступного для p-orderList. Кто-нибудь может мне с этим помочь?
<p-orderList [value]="policyList" [listStyle]="{'min-height':'calc(100vh - 325px)'}" (onSelectionChange)="onSelectionChange($event)">
<ng-template let-policy pTemplate="policy">
<span>{{policy}}</span>
</ng-template>
</p-orderList>
PS: onSelectionChange($event)
срабатывает каждый раз, когда вы выбираете элементы из упорядоченного списка. $event.value
содержит массив элементов.
1 ответ
Нет простого флага для этого, но это может быть достигнуто путем вызова функции, которая в основном заменяет весь массив выбора только исходной выбранной строкой. Вам понадобится переменная для хранения предыдущего значения для сравнения.
onSelectionChange(event) {
if (event.value.length === 1) {
this.tempValue = event.value[0];
}
else {
event.value = [this.tempValue];
}
}
Можно также упростить, передав функцию event.value в функцию
(onSelectionChange)="onSelectionChange($event.value)">
Что насчет metaKeySelection
входное свойство? (как показано здесь)
<p-orderList [metaKeySelection]="false" [value]="policyList" [listStyle]="{'min-height':'calc(100vh - 325px)'}" (onSelectionChange)="onSelectionChange($event)">
<ng-template let-policy pTemplate="policy">
<span>{{policy}}</span>
</ng-template>
</p-orderList>