Angular 角度指令在动态加载的组件中不起作用

Angular 角度指令在动态加载的组件中不起作用,angular,typescript,angular-directive,Angular,Typescript,Angular Directive,我已尝试动态加载组件,内容正在加载,但自定义指令不起作用 我提到 这篇参考文献似乎很老,而且在如何使用jit编译器方面有着压倒性的优势 请注意,我从后端响应获取的myData是 vav3 vav5 vav54 vav4 我用一些随机html尝试的代码也在模板中传递了我的自定义指令,模板加载了,但自定义指令不起作用 ngAfterViewInit() { let myData = '<div appMovableArea appDropzone (drop)="move(curren

我已尝试动态加载组件,内容正在加载,但自定义指令不起作用 我提到

这篇参考文献似乎很老,而且在如何使用jit编译器方面有着压倒性的优势

请注意,我从后端响应获取的myData是

vav3
vav5
vav54
vav4
我用一些随机html尝试的代码也在模板中传递了我的自定义指令,模板加载了,但自定义指令不起作用

ngAfterViewInit() {
 let myData = '<div appMovableArea appDropzone (drop)="move(currentBox, 
    dropzone1)" class="dropzone" style="width:50%; height:50%"></div>'

 const template = myData;

 const tmpCmp = Component({template: template})(class {
 });
 const tmpModule = NgModule({declarations: [tmpCmp]})(class {
 });

 this._compiler.compileModuleAndAllComponentsAsync(tmpModule)
    .then((factories) => {
        const f = factories.componentFactories[0];
        const cmpRef = f.create(this._injector, [], null, this._m);
        //cmpRef.instance.name = 'B component';
        this._container.insert(cmpRef.hostView);
    })
}
ngAfterViewInit(){
让myData=“”
const template=myData;
const tmpCmp=组件({template:template})(类{
});
const tmpModule=NgModule({declarations:[tmpCmp]})(类{
});
此._compiler.compileModule和所有组件同步(tmpModule)
.然后((工厂)=>{
常数f=工厂。组件工厂[0];
const cmpRef=f.create(this.\u喷油器,[],null,this.\u m);
//cmpRef.instance.name='B component';
此._container.insert(cmpRef.hostView);
})
}

HTML元素已加载,但“我的自定义指令”似乎不起作用。

在TMP模块中,您需要添加自定义指令声明

NgModule({声明:[appDropzone,appMovableArea,tmpCmp]})

或导入在此指令中声明此指令的模块

是否注入“LocaleService”??如果是,您需要提供此服务。在tmpModule中导入sharedModule是可以的,它适合您。我想现在你忘了提供LocaleService,因为例外情况是DaterangepickerComponent需要实例化LocaleService。实际上,我认为这个ngx daterangepicker材料npm模块已经导入到应用程序中,最终在其他模块中,给了我一个错误,我对这个动态模块也做了同样的操作,但我不知道如何解决这个问题issue@Enthu您应该将NgxDaterangepickerMd导入添加到tmpModule我将其添加到tmpModule,但之后也会出现相同的错误:)。我还没用过JIT编译器,这会是个问题吗?请你填写stackblitz上的代码好吗?所以我可以调试它。只是一个角度的例子