首页 > 解决方案 > 每个组件使用一个服务实例

问题描述

使用 Angular 8 我有两个组件:

@Component({ selector: 'a' })
export class A_Component {
    constructor(dataService: DataService) { }
}

@Component({ selector: 'b' })
export class B_Component {
    constructor(dataService: DataService) { }
}

数据服务如下:

export class DataService {
    public getValue(): Observable<number> { }
    public setValue(value: number) { }
}

组件 A 和 B 使用 DataService 来传达他们的子(孙,...)组件。

但我希望每个组件 A 和 B 都有自己的 DataService 实例。

这个怎么做?

标签: angularangular8

解决方案


以这种方式使用

@Component({ selector: 'a',
    providers: [DataService]
})
export class A_Component {
    constructor(dataService: DataService) { }
}

@Component({ selector: 'b',
    providers: [DataService]
})
export class B_Component {
    constructor(dataService: DataService) { }
}

推荐阅读