compileModuleAndAllComponentsAsync()angular2 - 2.0最终版本时没有提供者

时间:2016-10-04 18:27:18

标签: javascript angular

我有一个使用Compiler('@angular/core')compileModuleAndAllComponentsAsync()方法创建组件的方法。创建组件时,请执行以下错误

  

没有NameService的提供商!“。

我知道这是什么错误,但我尝试编译的模块有这个提供者:

@NgModule({
  imports: [CommonModule, RouterModule, FormsModule],
  declarations: [MyComponent],
  providers: [NameService]
})
export class MyModule {}

因此,如何在正在创建的组件上注入提供者NameService和其他提供者?

this.compiler.compileModuleAndAllComponentsAsync(this._createDynamicComponent())
.then(factory => {
    const compFactory = factory.componentFactories.find((x: any) => x.componentType === this.instanceComponent());
    const cmpRef = this.vcRef.createComponent(compFactory);

    this.addToInstance(cmpRef, (cmpRef) => {
        cmpRef.destroy();
    });
});

1 个答案:

答案 0 :(得分:0)

在寻找代码的几小时后,我发现问题是因为Component没有provider:[NameService]。我插入了提供程序,所有工作正常。

我花了很长时间才发现这个,因为组件工作正常,只有当我尝试动态创建它时,才会发生问题。