2016-10-10 135 views
0

我正在尝试为我的应用创建共享服务。Angular2中的共享服务

import { Injectable } from '@angular/core'; 

@Injectable() 
export class SharedService { 
    testService() { 
    console.log('share!'); 
    } 
} 

然后我把它注射在我app.component的供应商,但是当我试图把它称之为在这样的子组件的构造函数:constructor(public sharedService: SharedService) {}我得到了一个错误: Can't resolve all parameters for MyComponent。我也尝试将其注入到我的app.module提供程序中,并且也出现了此错误。我该怎么办?如何正确注入它?任何人都可以提供一个正确的共享服务的示例antire应用程序(它有几个模块)?

我有路由系统,我想有一个共享服务,并从当前表示的组件中更改它的数据。

+0

您是否已将'SharedService'导入到子组件中? – micronyks

+0

不,但是它不会仅仅创建一个服务上的新实例,而不是共享服务的目标? –

+0

你正在使用哪个版本? – micronyks

回答

4

我相信你使用最新版本,并希望使用单身服务。 对于您在@NgModule({})注册您的服务如下所示,

import {Sharedservice} from 'valid path'; 

@NgModule({ 
    imports:[BroswerModule], 
    ... 
    providers:[SharedService] 
}) 

现在,在孩子和家长组成部分只是在文件的顶部导入Sharedservice。

注意:从每个组件删除providers:[SharedService]

+0

提供了正确的答案,应该是“标记为答案” –