angular2在具有多个实例的页面之间共享数据

时间:2017-02-01 06:41:18

标签: angular ionic2

我正在使用angular2编写一个Ionic应用程序 - 让我们以MasterDetail模式为例:

MasterPage是显示列表的组件。

DetailPage是一个显示列表中单个项目的组件。

ListService是一项服务,其中包含要为MasterPageDetailPage共享的单个列表的数据,因此应用于单个项目(例如编辑)的所有更改都将更新{{ 1}}。

但是如果我有MasterPage多个实例怎么办?让我说我有MasterPage个菜单项我可以打开来自。的列表。

所以我的导航可能是这样的:

MenuPage - > MenuPage - > MasterPage - > DetailPage(来自标题上的菜单按钮) - >第二个MenuPage显示不同的列表。

我如何拥有<{strong> MasterPage 的多个实例,其中每组ListService - MasterPage共享一个实例?

1 个答案:

答案 0 :(得分:1)

如果您在@NgModule(...) AppModule中提供服务,则会获得整个应用程序的单个实例。

如果您在@Component(...)中提供服务,那么每个组件实例都将获得自己的服务实例并与其子代共享。

组件上的提供程序覆盖AppModule上的提供程序和父组件上的提供程序,以及组件本身及其子组件。

每个提供商始终有一个实例。如果将提供程序添加到组件中,则此提供程序的实例将与该组件的实例一样多。