2016-10-10 134 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

提供了正確的答案,應該是「標記爲答案」 –