使用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实例。

这个怎么做?

最佳答案

以这种方式使用

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

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

09-25 15:17