【问题标题】:Is there a way to add angular directives from a db value within a component?有没有办法从组件中的 db 值添加角度指令?
【发布时间】:2020-10-21 11:32:55
【问题描述】:

我目前正在尝试从我的 Angular 应用程序中创建一个网页设计器。 目前,我有一个设计器组件,它将成为父组件。在这个中,我想创建一个能够使用角度格式 HTML 的组件。

在我的数据库中,我想存储很多不同的 HTML 元素。举例:

<span *ngIf="this.getDisplayedOptions().length > 0">Display default Values</span>

在那之后,我希望能够在运行时创建一个能够通过示例使用 ngIf 的组件。像这样:

<app-elemennt [hmtl]="<span *ngIf="this.getDisplayedOptions().length > 0">Display default Values</span>">

有可能还是我走错了路?

非常感谢您的帮助!

【问题讨论】:

  • 为什么不在 Angular 中创建这些组件并在 DB 中存储一些参考?
  • 1.会建议性能吗?想法是要有很多(为标题、文本框、图像、图像轮播等创建一个新组件) 2. 如何调用组件以及如何在数据库中存储引用?非常感谢
  • 不建议将 html 存储在 dB 中并检索它,这肯定存在一些性能问题。
  • 谢谢。对于第二个问题,你会怎么做?

标签: angular dynamic innerhtml


【解决方案1】:

我相信你可以使用[innerHTML]绑定来实现这一点,你也应该使用DomSanitizer,更准确地说是这行代码:

 this.sanitizer.bypassSecurityTrustHtml(yourDbHTML);

更新

您可以使用ngx-dynamic-compiler 来实现这一点,它适用于 Angular 7+ 查看他们的演示here

【讨论】:

  • ngIf 指令 *ngIf="this.getDisplayedOptions().length > 0" 也能在消毒后工作吗?
  • 感谢您的提示!您给我的编译器似乎不起作用,但经过一番研究,发现同一个人做了另一个正在工作的编译器:link我会试一试,感谢您的帮助!
猜你喜欢
  • 2019-09-09
  • 2020-04-06
  • 1970-01-01
  • 2021-01-18
  • 2019-10-29
  • 2020-04-10
  • 2020-08-19
  • 1970-01-01
  • 2016-09-03
相关资源
最近更新 更多