angular - Angular 5 中的 innerHtml 和指令

标签 angular

我包括包含 angular-font-awesome 的 html 内容<fa>使用 <div [innerHtml]="fa-containing-content"> 标记到我的 .html 文件中.

我的问题是 fa 标签没有转换成 i 标签,所以没有图标显示。我怀疑将 fa 转换为实际图标的代码在包含后没有运行,但我不知道如何解决。

需要说明的是,angular-font-awesome 对我来说效果很好。仅当我在通过 innerHtml 包含的内容中包含 fa 标签时才会出现此问题。

尝试 1:

test: string ="<fa name='heart'></fa>"; <div class="test" [innerHtml]="test"></div>

输出:

<div _ngcontent-c1="" class="test"></div>

尝试 2:使用 safeHtml pipe

test: string ="<fa name='heart'></fa>"; <div class="test" [innerHtml]="test | safeHtml"></div>

输出:

<div _ngcontent-c1="" class="test"><fa name="heart"></fa></div>

问题仍然是 <fa>标记未转换,即 <i>没有被 angular-font-awesome 插入。

在包含 innerHtml 后,如何让 angular-font-awesome 再次运行它?

最佳答案

不幸的是,您无法在 html 处理阶段之后生成 Angular 组件。 html 是在运行时生成的,内部 html 注入(inject)也是如此,因此组件永远不会检测到它已被注入(inject)。

也许你可以尝试类似...

public applyFA: boolean = true;

<div class="test"><fa *ngIf="applyFA" [name]="'heart'"></fa></div>

至少 fa 组件应该正确生成到模板中。

关于angular - Angular 5 中的 innerHtml 和指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47933260/

相关文章:

angular - Angular 5 上的单元测试 http 服务

Angular HttpClient 帖子不起作用

angular - 检测 element.nativeElement Angular 上的滚动事件

css - 自定义 css 在 Angular 5 的 kendo ui 中不起作用

javascript - 如何在 Angular 中将输入值作为参数传递给路由器

带有 *ngIf 的 Angular 数据表显示错误

angular - Angular 项目中的 [number, number] 类型不存在 D3 属性 X 和属性 Y

Angular 2 使用嵌套的 ngFor

具有 updateOn 模糊的 Angular 自定义 FormControl

Angular 2 : Pass value from attribute directive as a component variable