Angular 2服务启动

时间:2016-01-20 18:42:34

标签: service angular

是否可以在启动时以角度2执行服务? bootstrap不执行服务的contstructor。 并且,每次在某个组件中注入服务时,注入器正在执行服务的结构。是否有办法使服务singelton并确保ctor只运行一次?

2 个答案:

答案 0 :(得分:2)

仅将服务添加到引导程序中,而不是添加到组件中的引导程序。 如果将其注入AppComponent,它将被实例化并且只被实例化一次。

将服务添加到组件上的提供程序会为每个组件实例创建一个新实例。

答案 1 :(得分:1)

Bootstrap不会启动该服务,一个正在注入该服务的消费类将会。通过在bootstrap中列出它,你将获得单身。

如果遵循将可注入服务(LogRepository)列入引导程序的惯例,则所有服务都将是单例。 (如在LogRepository中) bootstrap(TheApp, [HTTP_PROVIDERS,LogRepository]);

如果您将可注射服务的实例列为组件的提供程序但是从一开始就可以获得更多实例,只需将它们列在bootstrap()中即可。然后是所有单身人士。