Труба Angular 6 не отображает значок материала

Когда я хочу показать значок материала через трубу Angular, это не работает.

Представьте случай, когда у вас есть какие-то данные и вы хотите преобразовать их в иконку, например: у вас есть список людей, которые любят мороженое или нет, если ему это нравится, у вас есть данные «нравится», а если он у вас нет данных «не нравится», и эти два параметра, которые вы хотите преобразовать в значок «нравится», будут «<mat-icon>favorite</mat-icon>», а «не нравится» будет что-то еще. Я думал, что будет легко, если я использую Pipe, но он не отображает значок :(

Вот пример: https://stackblitz.com/edit/angular-uasanh

Я предполагаю, что это происходит из-за цепочки элементов рендеринга.

Может ли кто-нибудь дать мне некоторую инструкцию, как заставить его работать?


person Véger Lóránd    schedule 14.06.2018    source источник
comment
сегодня я понял, что innerHTML не компилирует переданный HTML для пользовательских угловых элементов.   -  person ngLover    schedule 14.06.2018
comment
Я не думаю, что вы вызываете компонент в канале. Лучшее, что я могу предложить, это использовать ngIf. Я имею в виду, почему бы и нет?   -  person Lazaro Henrique    schedule 14.06.2018
comment
@LazaroHenrique касается не вызова компонента в канале, а передачи компонента в innerHTML. даже эта штука не сработает [innerHTML]='‹mat-icon›favorite‹/mat-icon›'   -  person ngLover    schedule 14.06.2018
comment
Спасибо, ребята, я хотел использовать это с ngx-datatable, но мне удалось решить это с помощью некоторого ng-шаблона, так как innerHTML не компилируется. Еще раз спасибо :)   -  person Véger Lóránd    schedule 24.06.2018
comment
Можете ли вы сказать, как вы решили это, используя ng-template?   -  person dasfdsa    schedule 03.03.2019
comment
Привет @dasfdsa, надеюсь, это поможет: stackblitz.com/edit/angular-daiupg Если вы нужно подробное объяснение, пожалуйста, спросите :)   -  person Véger Lóránd    schedule 04.03.2019
comment
Замечательно. вы можете получить это как ответ. Благодарность   -  person dasfdsa    schedule 04.03.2019


Ответы (1)


Если у кого-то такая же проблема, мне удалось заменить каналы на ng-template. Вот пример: https://stackblitz.com/edit/angular-daiupg

PS: Если вы хотите отображать значки с помощью ngx-datatable, ng-template также может быть полезен.

person Véger Lóránd    schedule 05.03.2019