typescript - Hur trimmar jag mellanslag i primeNg Dropdown (p-dropdown) filter i angular 5?


Jag har använt PrimeNg dropdown (p-dropdown) i mitt Angular 5-projekt men när jag försöker filtrera dropdown-data och jag ger ett mellanslag efter det visar dropdown menyn Inga resultat hittades så hur kan jag lösa det?

t.ex. Jag har en listruta för land och om jag söker efter Indien med ett mellanslag före och efter i filtret visar p-dropdown Inga resultat hittades-meddelandet.

Jag vill helt enkelt trimma() den sökta strängen i primeng p-dropdown-filter

Här är HTML-koden för p-dropdown:

<p-dropdown (onChange)="checkType(model.transectionType)" *ngIf="availableBalance != 0.00" (keydown)="onKeyUp($event)" [style]="{'width':'100%'}" [options]="transectionType" [filter] = "true"
            [resetFilterOnHide] = "true" [(ngModel)]="model.transectionType" 
            [formControl]="form.controls['transectionType']" placeholder="Select a Transaction type" 
            optionLabel="value"></p-dropdown>

Svar #1

Jag har hittat lösningen men den är komplicerad. Så det grundläggande här är att när vi använder <p-dropdown> i vår Angular-app med [filter]="true", kommer det att ha keydown-metoden för filter definierad i ng_modules->primeng->components->dropdown->dropdown.js, så för att ta bort mellanslag från början och slutet av det sökta/filterade värdet behöver vi lägga till .trim() på inputValue på detta sätt: this.filterValue=inputValue.trim();

Primeng bör lägga till detta i deras kärnkod för dropdown så att vi inte behöver åtgärda det ytterligare och inte får detta problem i framtiden.

Svar #2

i primeng 15 och angular 15 :

html-fil

<p-dropdown (onFilter)="onFilter($event)" [filterValue]="filterValue">

ts-fil

filterValue: string = '';
onFilter(event) {
    this.filterValue = '';
    this.filterValue = CommonHelper.CorrectWrongCharacters(event.filter);
  }