gpt4 book ai didi

angular - Ngrx-data 选择单个实体

转载 作者:行者123 更新时间:2023-12-03 23:28:03 24 4
gpt4 key购买 nike

我正在使用 ngrx-data 插件(在 ngrx 之上运行),并且我试图从商店中选择一个实体(ngrx 数据调用“缓存”)。我发现您可以将单个实体添加到缓存中,但我找不到从商店检索单个项目(基于 Id)的方法。

我必须为此编写自己的选择器吗? 我假设 ngrx-data 会提供这样一个简单的操作

最佳答案

我确信有一种更优雅的方法可以做到这一点,但我能够通过使用数据服务上的 collection$ 属性来获取单个实体。
例如,我有一个名为 Core 的实体和一个名为 CoreEntityService 的 EntityService。我的实体缓存已通过 coreEntityService.getByKey(id) 填充。或者我可以通过 getAll() 填充实体缓存。
当我想检索具有该 id 的核心时,我使用此构造,此处通过将单个实体记录到控制台来说明:this.coreEntityService.collection$.subscribe(collection => console.log(collection.entities[id]))编辑添加:
您还可以订阅实体服务的 entityMap$。我向我的实体服务添加了一个名为 selectEntityById 的方法,它运行良好并返回一个 observable,与之前的代码不同,它返回一个实际对象:

selectEntityById(coreId: number): Observable<Core> {
return this.entityMap$.pipe(
map(entities => entities[coreId]),
first());
}
ngrx/data 的文档目前不是很好,但它正在改进。我希望有人能尽快对这个问题发表更好的答案。

关于angular - Ngrx-data 选择单个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com