primeng p-dropdown 是根据组名过滤的吗?

Primeng p-dropdown Is filtering done according to the group name?

我想使用 PrimeNG 页面上的代码按群组名称进行过滤。

<h3>Group</h3>
<p-dropdown [options]="groupedCars" [(ngModel)]="selectedCar3" placeholder="Select a Car" [group]="true" filter="true" filterBy="label,value">
    <ng-template let-group pTemplate="group">
        <img src="assets/showcase/images/demo/flag/{{group.value}}" style="width:20px;vertical-align:middle" />
        <span style="margin-left:.25em">{{group.label}}</span>
    </ng-template>
</p-dropdown>
<p>Selected Car: {{selectedCar3 || 'none'}}</p>

我使用了 groupedCars 变量 .ts 页面

selectedCar3: string;
this.groupedCars = [
            {
                label: 'Germany', value: 'germany.png', 
                items: [
                    {label: 'Audi', value: 'Audi'},
                    {label: 'BMW', value: 'BMW'},
                    {label: 'Mercedes', value: 'Mercedes'}
                ]
            },
            {
                label: 'USA', value: 'usa.png', 
                items: [
                    {label: 'Cadillac', value: 'Cadillac'},
                    {label: 'Ford', value: 'Ford'},
                    {label: 'GMC', value: 'GMC'}
                ]
            },
            {
                label: 'Japan', value: 'japan.png', 
                items: [
                    {label: 'Honda', value: 'Honda'},
                    {label: 'Mazda', value: 'Mazda'},
                    {label: 'Toyota', value: 'Toyota'}
                ]
            }
        ];

但是,我想按组标签和项目标签进行过滤。可能吗?

您可以向 filterBy 添加附加值 属性。

this.groupedCars = [
            {
                label: 'Germany', value: 'germany.png', 
                items: [
                    {label: 'Audi', value: 'Audi', additionalValue: 'germany.png'},
                    {label: 'BMW', value: 'BMW', additionalValue: 'germany.png'},
                    {label: 'Mercedes', value: 'Mercedes', additionalValue: 'germany.png'}
                ]
            }
        ];

你可以用forEach填充这个值,

this.groupedCars.items.forEach( item => {
    item.forEach( childValue => {
       childValue.additionalValue = item.value;
    })
} );

终于在 HTML 文件上;

filterBy="label,value,additionalValue"