如何使用p-listbox过滤多个标签?

时间:2019-05-17 08:54:04

标签: angular filter listbox primeng

我想过滤多个标签,optionLabel是否可以有多个选项?

<p-listbox [options]="sites" `enter code here`[(ngModel)]="selectedSite" class="ui-fluid" [listStyle]="{'max-height':'300px'}" filter="filter" optionLabel="name">

              <p-header>
                <strong>{{ 'select-site.choose' | translate}}</strong>
              </p-header>
              <ng-template let-site pTemplate="item">
                <span>{{site.value.code}} - {{site.value.name}}</span>
              </ng-template>
</p-listbox>

我想过滤代码和名称

2 个答案:

答案 0 :(得分:1)

与其将选项设置为任意对象的数组,不如将其设置为选择项的数组,其标签包含要过滤的两个值。

siteOptions: SelectItem[] = sites.map(s => { value: s, label: s.name + s.code });

更新您的列表框元素:

<p-listbox [options]="siteOptions" [(ngModel)]="selectedSite" class="ui-fluid" [listStyle]="{'max-height':'300px'}" filter="filter">

您已经在使用项目模板来控制列表中每个元素的显示方式,因此无需进行其他更改。

答案 1 :(得分:0)

是的。已在p-listbox中具有多个属性。只需在p-listbox中添加

multiple=true

https://www.primefaces.org/primeng/#/listbox请参阅属性部分