访问行为主题的值

Access values of Behavior Subject

我意识到 Whosebug 上有几个关于此的问题,我仍在努力解决这些问题。

我正在尝试访问行为主题的值,但显然理解不够,无法到达那里。我已经通读了 rxjs 文档和其他各种资源。我已经尝试创建一个新的 BehaviourSubject,使用 next,订阅它等等。还尝试使用 pipe & map 来映射它。

this.theService.items$

是一个 Observable - Behavior Subject,它有一个私有字段 _values,我试图访问它但不能。然后将其投影到一个变量,以便我可以访问字段值并在我的组件中使用。

items$ 是一个 getter 来检索 observable

private _items$ = new BehaviorSubject<T[]>([]);
get items$() {
    return this._items$.asObservable();
  }

我想要这样的东西,这是我发现的,但没有根据它的 id 找到项目

public model: IModel; 

this.theService.items$.pipe(
  map(items => <IModel>items.find(item => item.ID === this.id))).subscribe(item => {
    this.model = item
});

任何指点将不胜感激。

如果您想直接从 BehaviorSubject 获取值 - 您需要调用 BehaviorSubject.value.

这样您就可以在您的服务中公开方法:

private _items$ = new BehaviorSubject<T[]>([]);
get items$() {
  return this._items$.asObservable();
}
get items() {
   return this._items$.value;
}