我们目前正在使用ViewContainerRef.createComponent()
方法在运行时动态生成组件 - 它是一种插件系统,用户可以根据需要添加插件和显示屏幕。相关代码在这里:
this.module = moduleFactory.ngModuleFactory.create(this.injector);
var factory = this.module.componentFactoryResolver.resolveComponentFactory(tab.type);
tab.component = this.container.createComponent(factory);
其中moduleFactory
是创建动态加载模块的工厂。如果我有一个指令SomeDirective
我想申请创建的组件,这可能吗?我目前唯一看到的方法是通过模板编译(see here),但这似乎是设计的黑客,如果可能,我真的想避免这种情况。
有人有运气吗?我在调用createComponent时看到参数projectableNodes: any[][]
,但我不知道在这种情况下这是否相关。谢谢!