在Angular 2 RC5中共享一个服务实例

在Angular 2 RC5中共享一个服务实例,angular,typescript,Angular,Typescript,我曾经通过在我的@组件中声明一个viewInjectors来共享一个服务实例,如下所示: @Component({ selector: 'my-sel', viewInjectors: [SharedService], templateUrl: 'template.html', pipes: [MyPipe] }) 此解决方案在Angular 2 RC5中不再有效。有什么想法吗?如果要为应用程序或模块共享服务,则需要在引导应用程序或定义模块时声明该服务 boot

我曾经通过在我的
@组件中声明一个
viewInjectors
来共享一个服务实例,如下所示:

@Component({
    selector: 'my-sel',
    viewInjectors: [SharedService],
    templateUrl: 'template.html',
    pipes: [MyPipe]
})

此解决方案在Angular 2 RC5中不再有效。有什么想法吗?

如果要为应用程序或模块共享服务,则需要在引导应用程序或定义模块时声明该服务

bootstrap(AppComponent, [ SharedService ]);

@NgModule({
声明:[
应用组件
],

providers:[SharedService],//如果要为应用程序或模块共享服务,则需要在引导应用程序或定义模块时声明该服务

bootstrap(AppComponent, [ SharedService ]);

@NgModule({
声明:[
应用组件
],

提供者:[共享服务],//我猜你的意思是
viewProviders
?你想在哪里共享它?整个应用程序还是后代?@GünterZöchbauer
viewProviders
创建多个实例…我想在整个应用程序中的多个
组件
之间共享它。没有提供程序创建多个实例。总是有一个实例每个提供程序。@GünterZöchbauer好吧,当我从一个组件初始化服务中的变量并尝试在另一个组件中检索它时,我得到一个空变量。我猜你的意思是
viewProviders
?你想在哪里共享它?整个应用程序还是后代?@GünterZöchbauer
viewProviders
创建多个实例。。。我想在整个appNo提供程序中的多个
组件中共享它。提供程序创建多个实例。每个提供程序始终有一个实例。@GünterZöchbauer嗯,当我从一个组件初始化服务中的变量并尝试在另一个组件中检索它时,我得到一个空变量。看起来不错!我必须导入该变量吗我的组件中的e服务?事实上,没有,因为分层结构。如果这样做,单个将处于组件级别,而不是高于(应用程序或模块)…这就是Günter所说的“每个提供程序一个实例”。在这一级别上,您需要非常小心;-)看起来不错!我必须在我的组件中导入服务吗?事实上,不需要,因为存在分层结构。如果这样做,单个将处于组件级别,而不是高于(应用程序或模块)…这就是甘特所说的“每个提供程序一个实例”的意思。在这个级别上,您需要非常小心;-)