2016-12-16 47 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(); 
    } 

} 
相关问题