每个组件使用一个服务实例

时间:2019-11-25 12:39:23

标签: angular angular8

使用Angular 8,我有两个组件:

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

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

DataService如下:

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

组件A和B使用DataService来交流它们的子(子代...)组件。

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

该怎么做?

2 个答案:

答案 0 :(得分:3)

以这种方式使用

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

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

答案 1 :(得分:0)

将此添加到您的DataService

@Injectable({
  providedIn: 'root'
})export class DataService { ...