【发布时间】:2019-06-08 12:49:29
【问题描述】:
我需要创建一个模板,其中将根据变量值动态定义原生 html 标签。
我尝试使用自定义指令将最初定义的标记替换为请求的新标记,例如描述的here。尽管该解决方案似乎在一定程度上有效,但它破坏了 innerHTML 内容与组件类的变量和事件绑定。换句话说,组件类变量的更改不再对呈现的 html 产生影响。
在 Vue 中有一种非常简单的实现方式:
<component :is="tagName" class="foo" style="color:red">
anything inside component
</component>
例如tagName = 'p',这将导致
<p class="foo" style="color:red">
anything inside component
</p>
我想知道在 Angular 中是否有任何类似的解决方案。任何帮助都会很棒。
【问题讨论】:
-
你可以使用
ng-template和ng-template-outlet,查看这篇文章blog.angular-university.io/… -
据我了解,ngTemplateOutlet 适用于现有的 ng 模板。因为我想包含通用的 html 标签,所以它不能解决我的问题。
-
请参考以下链接,可能对您有所帮助stackoverflow.com/questions/42048836/…
-
请参考以下链接,可能对您有所帮助change tag at run time angular
-
已经尝试过了,并且在原始问题中也有相同的链接,并简要描述了我在尝试时遇到的问题。干杯
标签: angular