PrimeNG p-orderList отключить множественный выбор элементов - PullRequest
0 голосов
/ 14 ноября 2018

Я использую 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 содержит массив элементов.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Нет простого флага для этого, но это может быть достигнуто путем вызова функции, которая в основном заменяет весь массив выбора только исходной выбранной строкой.Вам понадобится переменная для хранения предыдущего значения для сравнения.

  onSelectionChange(event) {
    if (event.value.length === 1) {
      this.tempValue = event.value[0];
    }
    else {
      event.value = [this.tempValue];
    } 
  }

Можно также упростить, передав значение event.value в функцию

(onSelectionChange)="onSelectionChange($event.value)">
0 голосов
/ 15 ноября 2018

А как насчет свойства metaKeySelection input?(как показано здесь )

<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>
...