Angular 如何为动态角度组件进行依赖项注入

Angular 如何为动态角度组件进行依赖项注入,angular,dependency-injection,jit,angular-dynamic-components,Angular,Dependency Injection,Jit,Angular Dynamic Components,我试图在任何容器中构建一个动态组件。在动态创建的组件中,我需要一些预定义的服务和注入。主要原因是有一个外部服务负责组件的外观,但需要在客户端对组件执行其他操作 private elementRef:dynamic component for injection构造函数中的elementRef导致问题,无法提供注入值。获取错误-“错误:无法解析Xyz:(?)的所有参数。” 向动态创建的构造函数注入或传递参数的最佳方法是什么?如果将Component和NgModule定义为@Component和@N

我试图在任何容器中构建一个动态组件。在动态创建的组件中,我需要一些预定义的服务和注入。主要原因是有一个外部服务负责组件的外观,但需要在客户端对组件执行其他操作

private elementRef:dynamic component for injection构造函数中的elementRef导致问题,无法提供注入值。获取错误-“错误:无法解析Xyz:(?)的所有参数。”


向动态创建的构造函数注入或传递参数的最佳方法是什么?

如果将Component和NgModule定义为@Component和@NgModule语法,则该方法有效。我在使用你使用的方法时遇到了同样的问题。我不知道一个不工作,另一个不工作的确切原因。检查此已接受的答案:

嗯,不是为了消除你的振动或其他什么,但是有一个库来简化动态组件控制
@angular/cdk
@angular/material
是建立在它之上的,实用程序可能真的很有用。我用过cdk,但它实际上不适用于我的用例,材料更多用于设计,对建筑本身没有帮助。假设我有一个来自外部源的div元素,我想在运行时呈现它,这些库究竟有什么帮助?
const component = Component({
            template: div,
            selector: 'test'
        })(
            class Xyz {
                constructor(private elementRef: ElementRef) { }
            });
        const module = NgModule({ declarations: [component] })(class {
        });
        this.compiler.compileModuleAndAllComponentsAsync(module)
            .then((factories) => {
                const f = factories.componentFactories[0];
                const cmpRef = f.create(this.injector, [], null, this.ngModuleRef);
                                container.clear();
                container.insert(cmpRef.hostView);
             });