如何在角度8中添加通用组件

时间:2019-11-12 13:35:03

标签: angular angular-directive angular-dynamic-components

在我的角度应用程序中,我正在处理许多在运行时动态呈现的组件,但是我必须在运行时将其注入之前指定组件,是否可以通过将其名称作为字符串来加载组件... 说...我有两个组件FirstComponentSecondComponent我可以将它们的名称存储在数组中,并且它们可以通过用户操作来决定要呈现的组件,并且如果不希望使用名称或类似条件的条件。我希望某些东西可以通用运行,以防我更改数组或向数组添加新组件,而我不想更改所写的代码。 非常感谢... 我正在使用ng-dynamic-component向页面添加动态组件, 如果该库有办法实现它。

1 个答案:

答案 0 :(得分:0)

您可以使用 ViewContainerRef

在他的教程中对此进行了很好的解释。

https://medium.com/front-end-weekly/dynamically-add-components-to-the-dom-with-angular-71b0cb535286

    classNames.forEach(type=> {
           const factory = this.resolver.resolveComponentFactory(type);
           const compRef = this.vcRef.createComponent(factory);
             });
  • vcRef 是指ViewContainerRef的对象。
  • 解析器是指 ComponentFactoryResolver