根据字符串

时间:2018-08-08 09:19:22

标签: angular angular2-directives

我的目标是创建一种自动方法,将HTML元素的任何给定字符串部分转换为自定义组件。

例如,给定:

<p> Hello my name is #max </p>

我想创建以下内容:

<p> Hello my name is <some-custom-component name="Max"></some-custom-component> </p>

然后将基于some-custom-component的模板进行渲染

我的主要问题是用HTML元素本身的所有其他内容包装自定义组件。我知道我可以使用Angular Dynamic Component Loader创建组件,但是无法为其获取合适的templateRef

理想的解决方案是:

  1. 用户可以将我的指令附加到指定模式的任何HTML元素
  2. 指令扫描内容以自定义组件替换任何出现的模式(静态或动态选择均无关紧要)

有什么办法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

这很有趣。抱歉,因为您可能已经解决了它,所以我来晚了,但是我编写了一个非常适合您的用例的库,以至于我看到这篇文章后就不会感到惊讶,莫名其妙地得到了失忆症,然后下意识地开始工作解决问题。

无论如何,该库称为ngx-dynamic-hooks。尤其要检查“ Writing your own HookParser”部分(如果由于某些原因,它仍然对您有用)。