2

我有来自后端的 HTML 元素字符串,元素上有自定义指令。

例如:

str = "abc xyz <span [customDirective]='2'>qwerty</span> pqrs"

我想将其呈现为 HTML,所以customDirective请参与其中。

我在没有 -aot(just ng serve)的情况下使用了几个解决方案

但是 -aot( ng serve -aot) 或生产构建 ( ng build -prod)没有任何效果

1. 使用 [innerHTML] 指令

正确呈现 HTML 字符串,但这从元素中清除了指令。

2.动态加载组件

我尝试了这个解释清楚的解决方案 这在没有 -aot的情况下工作

但是当我使用 -aot (或在生产版本中)运行时出现此错误:

“没有找到 RuntimeComponentModule 的 NgModulele 元数据”

3.动态加载不同的组件

我尝试了另一个解决方案 这也可以在没有 -aot 的情况下工作

但是当我使用 -aot (或在生产版本中)运行时出现此错误:

未加载运行时编译器

4.尝试解决#3中的错误

为了解决这个问题,我以这种方式加载了编译器并用它来创建一个组件。

const compilerFactory: CompilerFactory =
            platformBrowserDynamic().injector.get(CompilerFactory);
this.compiler = compilerFactory.createCompiler([]);

这在没有 -aot 的情况下也有效

使用 -aot(或在生产构建中)运行时出现此错误:

已创建具有不同配置的平台。请先销毁它。

任何人遇到类似的问题,请在这里帮助。

我也经历了动态组件加载器 ,但它只将数据动态传递给已经定义的组件。

在这里,我希望使用动态模板为我从后端获取的字符串动态创建组件。

4

0 回答 0