0

I have a dropdown (input + autocomplete) where I can type a string or select an object from the dropdown list. I want to use the pipe only when the value in the input is of type string. If user selects a value from dropdown, I need to remove the custom pipe.

I want to apply the custom pipe the typeof option.name is String. and to remove it if type is Object.

Tried the link, but in vain Angular 2 Pipe under condition

Actual code:

<mat-option *ngFor="let option of sortedOptions"
       [innerHTML]="option?.name | highlight : userControl.value" >

What I am not able to understand is how to check String type here:

{{ typeof(option.name) ? (option?.name | highlight : userControl.value)  : option.name }}
Haze
  • 110
  • 14

1 Answers1

1

You can create helper method on your component like this:

isString(val) { return typeof val === 'string'; }

Now you can check your condition like this:

{{ isString(option.name) ? (option?.name | highlight : userControl.value)  : option.name }}

Here is the working demo for you

asimhashmi
  • 4,258
  • 1
  • 14
  • 34