[英]Angular - subject observable not responding
我有一个服务 SelectorService,我在其中定义了主题和可观察对象。
private eventEligibleApiStatus = new Subject<any>();
public eventEligibleApiStatusUpdated$ = this.eventEligibleApiStatus.asObservable();
我已经定义了一个调用 subject.next 的方法。
notifyEventEligibleApiStatus(status) {
this.eventEligibleApiStatus.next(status);
}
现在在另一个名为 scheduler-component.ts 的组件中,我定义了一个 boolean 标志和一个可观察对象
eventEligibleInProgress = false;
eventEligibleListener: Observable<any> = this.resourceSelectorService.eventEligibleApiStatusUpdated$;
我正在订阅这个可观察的
this.eventEligibleListener.subscribe( status => {
this.eventEligibleInProgress = status;
});
在 SelectorComponent 中,我这样调用 SelectorService 的 notifyEventEligibleApiStatus,
this.selectorService.notifyEventEligibleApiStatus(true);
每当触发 notifyEventEligibleApiStatus function 时,控件不会进入 eventEligibleListener.subscribe 并且标志也不会更改。
我在这里做错了什么。
PS:我是 Angular 和前端开发的新手。
可能是 SelectorService 不是 SingleTon 并且为每个组件创建不同的 object。 您可以尝试@Injectable({ providedIn: 'root' })
一种方法,这将创建 SingleTon object 并且相同的 object 将在组件之间共享。
您尚未在代码中声明 eventEligibleApiStatus 主题。 您已经共享了一些代码。 尝试共享完整代码,以便我们更好地理解而不是猜测。
尝试使用 behaviorSubject
private eventEligibleApiStatus = new BehaviorSubject<any>(null);
public eventEligibleApiStatusUpdated$ = this.eventEligibleApiStatus.asObservable();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.