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