首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular ngrx-数据写入服务响应到单独的entityCache段

Angular ngrx-数据写入服务响应到单独的entityCache段
EN

Stack Overflow用户
提问于 2020-01-15 00:15:35
回答 1查看 239关注 0票数 1

我目前正在做一个使用ngrx-data来存储信息的项目。到目前为止,它工作得很好,但现在我想存储来自端点的实体数据,该端点在其响应中提供了两种不同的实体类型。

代码语言:javascript
复制
{
  "posts": [
    {
      "id": 1,
      "title": "Title"
    },
    {
      "id": 2,
      "title": "Title 2"
    }
  ],
  "users": [
    {
      "id": 1,
      "username": "Username"
    },
    {
      "id": 2,
      "username": "Username 2"
    }
  ],
  "date": "1996-10-15T00:05:32.000Z"
}

现在我想把它们分别保存在ngrx- entityCache中。为此,我在Angular中实现了基本的HTTP服务,它扩展了DefaultDataService。我将其集成到我的外观中,并添加了必要的元数据。

代码语言:javascript
复制
constructor(entityServices: EntityServices) {
  this.postsAndUsersService = entityServices.getEntityCollectionService(
    'PostsAndUsers'
  );
}
代码语言:javascript
复制
export const entityMetadata: EntityMetadataMap = {
  PostsAndUsers: {
    selectId: selectIdPostsAndUsers
  }
}

我能够从商店“作为一个整体”获得所有收到的信息,但我认为我正在失去使用ngrx-data获得的许多优势(比如获得一组ids)。

有没有什么方法可以标准化/拆分数据并将其写入entityCache的不同部分

非常感谢您的任何提示。

EN

回答 1

Stack Overflow用户

发布于 2020-01-15 00:55:20

您需要在dataService中扩展getAll()方法。getAll(): Observable<Users[]> { return super.getAll().pipe(map(data => data.users)); }

但是在这个概念中,你需要为帖子添加另一个dataService。但我认为这是冗余的,如果您使用ngrx包实现自定义状态管理,效果会更好,因为这个数据包现在太严格了,只支持纯C.R.U.D操作。或者需要将数据分离到两个API端点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59737767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档