2016-10-04 9 views
0

私はCompilerクラス('@angular/core')compileModuleAndAllComponentsAsync()メソッドを使用してコンポーネントを作成する少しの方法があります。私は、コンポーネントを作成すると、compileModuleAndAllComponentsAsync()angle2 - 2.0最終バージョン

ネームサービス用ませプロバイダーをフォローエラーを持っていない「

私は、このエラーが何であるかを知っているが、私はコンパイルしてみてくださいモジュールは、このプロバイダを持っています!。

@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(); 
    }); 
}); 

答えて

0

時間を探してコードを検索したところ、Componentにはprovider:[NameService]が含まれていないため問題が見つかりました。私はプロバイダを挿入し、すべて正常に動作しました。

コンポーネントが正常に動作していたため、これを発見するまでに時間がかかりました。動的に作成しようとしたときにのみ問題が発生しました。

関連する問題