繁体   English   中英

Angular - 可观察对象没有响应

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM