Angular 没有注入器的角形元件?

Angular 没有注入器的角形元件?,angular,typescript,Angular,Typescript,我正在试验Angular的自定义元素,并试图避免使用Angular的依赖项注入 const MyElementElement = createCustomElement(MyElementComponent, { injector }); customElements.define('my-element', MyElementElement); 但是,如果不传入注入器,我无法创建自定义元素 createCustomElement(MyElementComponent) 有没有一种方法可以在

我正在试验Angular的自定义元素,并试图避免使用Angular的依赖项注入

const MyElementElement = createCustomElement(MyElementComponent, { injector });
customElements.define('my-element', MyElementElement);
但是,如果不传入注入器,我无法创建自定义元素

createCustomElement(MyElementComponent)

有没有一种方法可以在不使用Angular的依赖项注入的情况下使用自定义元素?

我不确定您的
createCustomElement
函数在做什么,但是如果您试图动态添加组件,这就是您想要遵循的模式

import { Component, ComponentFactoryResolver, OnInit, ViewChild, ViewContainerRef } from '@angular/core';

@Component({
    selector: 'app-something',
    templateUrl: './something.component.html',
    styleUrls: ['./something.component.scss']
})
export class SomethingComponent implements OnInit {
    @ViewChild('containerRef', { read: ViewContainerRef }) viewContainerRef: ViewContainerRef;
    private readonly _cfResolver: ComponentFactoryResolver;
    constructor(_cfr: ComponentFactoryResolver) {
        this._cfResolver = _cfr;
    }

    ngOnInit() {
        const componentFactory = this._cfResolver.resolveComponentFactory(MyComponent);
        const componentRef = this.viewContainerRef.createComponent(componentFactory);
        // Component Ref then has access to all it's properties
        // So you can then do things like
        // componentRef.instance.myComponentProperty = 'something';
    }
}
在HTML中,放置以下标记的位置是如何控制组件插入的位置:

<ng-template #containerRef></ng-template>

基本上,在要进行“动态填充”的组件中,导入
ComponentFactoryResolver
,以便创建组件工厂。一旦拥有了该工厂,就可以将其插入到组件中。如果这样做,动态部件中的喷油器将分解。你不必通过任何考试

这并不像做
newmycomponent(…)