2016-12-16 91 views
0

得到了問題 - 我需要爲不同的模塊獲得不同的服務實例,但是如果我是模塊中的共享服務,爲我的所有模塊獲得服務的一個實例。Angular 2 - 每個模塊的唯一服務實例

@NgModule({ 
    imports:  [ BrowserModule ], 
    declarations: [ AppComponent, ServiceComponent, Service2Component ], 
    bootstrap: [ AppComponent ], 
    providers: [ UserService ] 
}) 
export class AppModule { } 

所以,如果我在這裏是用供應商,或以下組件的模塊之一 - 的ServiceComponent,Service2Component - 我得到UserService的一個實例。

我可以得到唯一的實例只有當使用在所有@Components此服務而無需將其定義模塊,這樣

@Component({ 
    selector: 'service2test', 
    template: `<h1>Hello, {{user}}.<br>ServiceComponentValue: {{value}}</h1>`, 
    providers: [ UserService ] 
}) 

我的問題是 - 模塊可以定義服務,並獲得獨特的價值每個模塊?

服務,我用於測試:

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

@Injectable() 
export class UserService { 
    userName = 'Sherlock Holmes'; 
    value: number; 

    constructor() { 
    this.value = Math.random()*100; 
    } 
} 

回答

0

鬱可對於沒有注射單依存性的每個組件創建新的服務實例。

export class MyComponent { 

    userService: UserService; 

    constructor() { 
    this.userService = new UserService(); 
    } 

} 
相關問題