【发布时间】:2016-05-08 14:26:24
【问题描述】:
假设我有一个组件,它使用来自 Github 的第 3 方组件,它定义了它自己的提供程序。
<my-component>
<awesome-contrib-component></awesome-contrib-component>
</my-component>
对于awesome-contrib-component 提供者:
@Component({
selector: 'awesome-contrib-component',
providers: [FooProvider]
})
据我所知,即使我在应用程序引导级别提供FooProvider,甚至在my-component(使用提供程序或视图提供程序),因为awesome-contrib-component 指定它自己的提供程序,它总是得到它自己的实例。
问题在于,在my-component 中,我需要访问FooProvider 的相同 实例,该实例由awesome-contrib-component 使用,但我无法获得它。
这可能吗?我错过了什么吗?谢谢!
这里要强调的重要一点是,awesome-contrib-component 是来自 Github 的第 3 方模块,它定义了自己的提供程序,并将 FooProvider 作为私有变量分配给自己,并且不会公开它。
作为一个使用这个第 3 方库但没有打开 PR(我做过)的人,我不确定如何解决这个问题。
【问题讨论】:
-
你说的是@ViewChild吗? angular.io/docs/ts/latest/api/core/ViewChild-var.html
-
@AndreyKartashov 是的,如果 ViewChild 中引用的组件没有将其提供程序公开为公共属性,我有什么办法可以访问它吗?