Вам нужно указать свой p-orderList на отфильтрованные результаты, поэтому вам придется сделать результаты общедоступной переменной вашего компонента:
public filteredDevices: any; //make this an Array<x> of whatever your devices are, sames as this.devices
...
onCategoryChange(selectedType){
filteredDevices = this.devices.filter(element => {return element.object_type === selectedType});
console.log(results);
}
HTML в основном такой же, только что отфильтрованные устройства вместо устройств.
<p-orderList [value]="filteredDevices" [metaKeySelection]="false" [listStyle]="{'height':'400px'}" header="Devices" controlsPosition="right" dragdrop="false" [(selection)]="selected" [responsive]="true">
<ng-template let-device pTemplate="item">
<div style="font-size: x-large">
{{device['object_name'] | noquotes}}
</div>
<div>
<label>mac: </label>{{device.deviceData.MAC}}
</div>
<div>
<label>id: </label>{{device['object_identifier']}}
</div>
<div>
<label>type: </label>{{device['object_type']}}
</div>
</ng-template>
</p-orderList>
Возможно, вам придется изменить больше, чем [value]="filteredDevices"
, я не уверен, что именно здесь назначен список устройств для <p-orderList>
, но вместо этого используйте фильтрованные устройства, где вы назначаете устройства для <p-orderList>
* 1010. *