2016-07-19 16 views
1

動的に親ビュー内の子コンポーネントをロードしようとしている:ViewUtilsプロバイダ(角2 RC 4)

this.viewAddedSubscription = viewManager.viewAdded.subscribe((view) => { 
    let injector = ReflectiveInjector.resolveAndCreate([new Provider('view', { useValue: view })]); 

    this._componentResolver.resolveComponent(view.type).then(result => { 
      this.child.createComponent(result, 0, injector); 
    }); 
}); 

しかし、常にエラーを取得しては:

Error: Uncaught (in promise): No provider for ViewUtils! 

私が何か間違ったことをやっていますか?いいえ、誰かが私にViewUtilsのプロバイダを追加する方法を教えてください。

答えて

0

代わりに独立したインジェクタの、電流コンポーネントインジェクタの子インジェクターを作成します。

constructor(private injector:Injector) {} 

someOtherMethod() { 
    let resolvedProviders = ReflectiveInjector.resolve([new Provider('view', { useValue: view })]]); 
    let child = ReflectiveInjector.fromResolvedProviders(resolvedProviders, this.injector); 
    ... 
} 

あなたの現在のコンポーネント(角度によって世界的に提供するすべてのもの)と同じプロバイダを持ってインジェクタを渡すこの方法をオーバーライド(既に親が提供している場合)またはviewプロバイダを追加します。

+0

これは私が探していたものです。ありがとうございます。 – BaHXeLiSiHg