我的Angular服务中有一个这样的主题:
private sub = new Subject();
sendSub(page: page) {
this.sub.next(page);
}
getSub(): Observable<any> {
return this.sub.asObservable();
}
在父组件中,我已订阅getSub()
。从子组件中,我要发送一个下一个值,但在父组件中,我将获得两个值。
只需要一个值,这样我的代码块就只能执行一次:
subscription: Subscription;
this.subscription = this.pageService
.getSub()
.subscribe(
(data) => {
this.data = data;
this.nextSelection();
}
);
答案 0 :(得分:0)
更改
getSub(): Observable<any> {
return this.sub.asObservable();
}
到
getSub: Observable<any> = this.sub.asObservable();
这可确保每个订户使用相同的主题。
答案 1 :(得分:0)
在父组件的构造函数中添加订阅代码。Here is a fiddle of the same
this.appService
.getSub()
.subscribe(
(data) => {
this.data = data;
this.nextSelection();
}
);