[英]Angular component not getting data from service to pass to shared control
我已经设置了一个基本应用程序,该应用程序调用服务以通过调用公开可观察对象的服务来获取数据以传递给共享控件。 但是,该服务返回一个空数组。 我试图弄清楚没有返回什么数据。
这是一个完整的堆栈闪电战: 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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.