PrimeNG p-orderList禁用多项选择

时间:2018-11-14 06:23:29

标签: html angular primeng

我正在使用PrimeNG的p-orderList。默认情况下,metaKeySelection属性为true,这意味着需要按下metaKey(ctrl键)才能选择多个项目。我宁愿在寻找一种完全禁用对多个项目的选择的方法。我应该能够在订购列表中选择“仅一项”。 没有可用于p-orderList的metaKey属性。有人可以帮我吗?

<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 :(得分:0)

metaKeySelection输入属性如何? (如here所示)

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

答案 1 :(得分:0)

没有简单的标志,但是可以通过调用一个函数来实现,该函数基本上将整个选择数组替换为原始选择的行。 您将需要一个变量来存储先前的值以进行比较。

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

也可以通过将event.value传递给函数来简化

(onSelectionChange)="onSelectionChange($event.value)">