我有2个组件和它们之间连接的通用服务,我从第一个组件发送数据并在服务中获取此数据,但第二个组件未获取此数据。 第一部分: 初始化:
constructor(private commonService: commonService) {}
并发送如下数据:
this.commonService.notify(this.Index);
常用服务
private source = new Subject<number>(0);
public indexChanged$ = this.source.asObservable();
constructor() {
}
public notify(n:number) {
this.source.next(n);
}
第二个组件网:
constructor(private commonService: commonService) {
commonService.indexChanged$.subscribe(number =>{
console.log("number", number)
});
我看上去here并做了同样的事情,但从未获得价值。 谢谢
* edit-我在第二个部分获得了初始编号,但此后没有任何内容
答案 0 :(得分:0)
您可以使用BehaviorSubject。
BehaviorSubject保留值并对其进行初始化,然后可以调用notify方法并设置新值。
常用服务
private source = new BehaviorSubject<number>(0);
public indexChanged$ = this.source.asObservable();
constructor() {
}
public notify(n:number) {
this.source.next(n);
}
第二部分:
constructor(private commonService: commonService) {
commonService.indexChanged$.subscribe(number =>{
console.log("number", number)
});
}