Githubのサードパーティ製コンポーネントを使用するコンポーネントがあり、独自のプロバイダを定義しているとします。Angular2で子コンポーネントのプロバイダにアクセスする
<my-component>
<awesome-contrib-component></awesome-contrib-component>
</my-component>
とawesome-contrib-component
プロバイダ向け:私の知る限りがあるため、私はアプリのブートストラップレベルで、あるいはmy-component
にFooProvider
を提供していても(プロバイダやviewProvidersのいずれかで)、言うことができるように
@Component({
selector: 'awesome-contrib-component',
providers: [FooProvider]
})
awesome-contrib-component
は独自のプロバイダであると指定していますが、常にそれ自体のインスタンスになっています。
問題がmy-component
に私がawesome-contrib-component
で使用されているFooProvider
の同じインスタンスにアクセスする必要があると私はそれを得ることができないんだということです。
これはまったく可能ですか?何か不足していますか?ありがとう!
ここで強調すべき重要なことは、awesome-contrib-component
がGithubのサードパーティ製モジュールであることです。それは自身のプロバイダを定義し、FooProvider
をプライベート変数として割り当て、公開しません。
このサードパーティ製のライブラリを使用してPRを開いていない人(私が行ったこと)は、これを回避する方法がわかりません。
あなたは@ViewChildについて話していますか? https://angular.io/docs/ts/latest/api/core/ViewChild-var.html –
@AndreyKartashovはい、ViewChildで参照されているコンポーネントがプロバイダを公開プロパティとして公開していない場合は、私はそれにアクセスする? –