2016-12-16 6 views
0

問題が発生しました - 私は別のモジュールのために私のサービスの異なるインスタンスを取得する必要がありますが、私はモジュールでサービスを共有している場合、 。角2 - 各モジュールの一意のサービスインスタンス

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

ので、私はここで、使用者だ場合、または以下のコンポーネントのモジュールの1つに - ServiceComponent、Service2Component - 私はUserServiceの1つのインスタンスを持っています。

私はせずに、この

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

ように私の質問は、モジュールで定義するすべての@Componentsにのみ使用する場合は、このサービスを一意のインスタンスを取得することができます - それは可能モジュールでサービスを定義し、一意の値を取得しています各モジュール?私は試験に使用

サービス:

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(); 
    } 

} 
関連する問題