Angular 组件未从服务获取数据以传递给共享控件

Angular component not getting data from service to pass to shared control

我已经设置了一个基本的应用程序,它调用一个服务来获取数据,通过调用一个公开可观察对象的服务来传递给共享控件。但是,该服务返回一个空数组。我正在尝试找出未返回的数据。

这是一个完整的 stackblitz:https://stackblitz.com/edit/angular-ivy-o5wjvf

您的 combineLatest 需要订阅...否则您当前的调用将不会设置 userItemsEntityListSubject$

的下一个值

您当前的代码:

  combineLatest(this.userItems$, this.items$).pipe(
      map(([useritems, items]) => {
        console.log(' inside the dataService combineLatest: ', useritems);
        return items
          .filter((i) => !useritems.includes(i.itemId))
          .map((item) => {
            return {
              entityId: item.itemId,
              entityName: item.itemName,
              entityCategory: '',
            };
          });
      })
    ),
      tap((val) => console.log(' the value of moSelectParticipants$: ', val));
    tap((val: IMySelectEntity[]) => this.userItemsEntityListSubject$.next(val));

不确定为什么将 tap 排除在 pipe 之外,可能是 C&P 不好

这是修复(另请注意 combineLatest 中的方括号):


combineLatest([this.userItems$, this.items$]).pipe(
      map(([useritems, items]) => {
        console.log(' inside the dataService combineLatest: ', useritems);
        return items
          .filter((i) => !useritems.includes(i.itemId))
          .map((item) => {
            return {
              entityId: item.itemId,
              entityName: item.itemName,
              entityCategory: '',
            };
          });
      }),
    ).subscribe(items => this.userItemsEntityListSubject$.next(items))