angular - 从字符串动态创建 Angular 组件

标签 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. 该指令扫描内容,用自定义组件替换任何出现的模式(静态或动态选择无关紧要)

有什么办法可以实现吗?

最佳答案

这很有趣。抱歉,我来晚了,因为你可能已经解决了它,但我写了一个非常适合你的用例的库,如果我看到这篇文章,我不会感到惊讶,不知何故得了失忆症,然后下意识地开始工作解决问题。

不管怎样,这个图书馆叫ngx-dynamic-hooks .尤其要查看“Writing your own HookParser”部分(如果出于某种原因,它仍然对您有用)。

关于angular - 从字符串动态创建 Angular 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51742966/

相关文章:

angular - 极简主义 Angular2 设置

angular - 当我打开另一个面板时调用 <mat-expansion-panel> 的 (closed) 函数

angular - 如何在 angular2 的数组中的数组中设置补丁值(更新嵌套值)?

angular - 在 <tr> 中嵌入 Angular 指令

angularjs - 在 Jquery 插件模板中绑定(bind) Angular2 组件

javascript - Angular2指令修改点击处理

angular2-template - 从组件角度 2 获取 ng-template

android - 从服务器下载文件到 Ionic2 App

javascript - 如何使scrollIntoView()在第一次点击时起作用(Angular 6)?

node.js - 编译错误 : Cannot find module 'util'