Можно ли применить условную трубу, которая сама содержит условие? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть раскрывающийся список (ввод + автозаполнение), где я могу ввести строку или выбрать объект из раскрывающегося списка.Я хочу использовать канал только тогда, когда значение на входе имеет тип строки.Если пользователь выбирает значение из выпадающего списка, мне нужно удалить пользовательский канал.

Я хочу применить пользовательский канал, typeof option.name - String.и удалить его, если указан тип Object.

Попробовал ссылку, но тщетно Угловая 2 труба при условии

Фактический код:

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

Я не могу понять, как проверить тип строки здесь:

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

1 Ответ

1 голос
/ 13 июня 2019

Вы можете создать вспомогательный метод для вашего компонента следующим образом:

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

Теперь вы можете проверить свое состояние следующим образом:

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

Вот рабочая демо для вас

...