为NgModule和Component提供服务之间的区别

时间:2016-09-23 08:21:41

标签: angular

我们刚刚开始使用angular2的第一个项目。我有一个关于提供服务的问题。

据我所知,有两种方法可以在您的应用中使用providers:[MyService]声明提供商。 您可以在@NgModule标记中全局声明,也可以在@Component标记中本地声明。

据我所知,这两种方式的唯一区别在于提供范围。适用范围广,一次只有组件范围。 出于这一点,我会得出结论,我宁愿在我的特定组件中提供本地服务(取决于服务的用途),以保持范围小。

这是正确的,还是两种宣言方式之间还有其他差异,我不知道?

1 个答案:

答案 0 :(得分:4)

如果您为组件提供本地服务,则他们将不具备相同的服务。他们获得了相同类型的所有A服务,但它们不是相同的服务。

如果您将它们提供给AppModule,则会将其创建为整个应用程序的单例。