首页 > 解决方案 > Angular - 动态实例化组件,等待其初始化并获取其 HTML

问题描述

我使用外部依赖项(ng2-table)来显示一个可以过滤和排序的简单表。

该库接受 HTML 字符串作为单元组件。我想提供我在应用程序其他地方使用的组件的 HTML。

我尝试使用 ResolverComponentFactory 创建组件,并为组件提供填充 HTML 所需的数据,然后使用 outerHTML 作为组件的 HTML。

const componentFactory = this._resolver.resolveComponentFactory(myComponent);
const component = componentFactory.create(this._injector); 
component.instance.data = data;

const cellContent = component.instance.myElementRef.nativeElement.outerHTML;

我以为我需要等待 ngContentInit 钩子,但由于组件未呈现,init 不会附加(事件 ngOnInit 之一)。

我知道我可以使用函数创建相同的字符串,但是当我在应用程序的不同部分重复使用相同的模板时,能够使用该组件真的很棒。

我也知道我试图实现一些棘手且不是很干净的事情,但我试图对我所拥有的做出最好的妥协。

标签: angular

解决方案


推荐阅读