ngrx/data 实体数据服务

2024-03-03

尝试理解ngrx/data实体数据服务示例here https://ngrx.io/guide/data#creating-entity-data-services,其中显示“创建实体数据服务”。在展示该服务之后,文档继续展示如何在组件中使用 ngrx/data。我感兴趣的组件部分是这样的:

getHeroes() {
  this.heroService.getAll();
}

文档指出getAll()发起一个 HTTP 请求,但我不确定这个请求实际上是在哪里或如何发出的。在里面ngrx-数据仓库 https://github.com/johnpapa/ngrx-data-lab。它指出用以下代码替换 HeroService:

import { Injectable } from '@angular/core';
import {
  EntityCollectionServiceBase,
  EntityCollectionServiceElementsFactory
} from 'ngrx-data';
import { Hero } from '../core';

@Injectable({ providedIn: 'root' })
export class HeroService extends EntityCollectionServiceBase<Hero> {
  constructor(serviceElementsFactory: EntityCollectionServiceElementsFactory) {
    super('Hero', serviceElementsFactory);
  }
}

文档指出ngrx-data handles getting and saving our data for us。太好了,但我不知道获取数据是在哪里发生的。我克隆了存储库,检查了finish分支,无法找到到达端点的东西。

例如。用于调用的服务http.get(${api}/heroes) for getAll()获取所有英雄,但这被上面的代码替换了,那么这些调用发生在哪里呢?

我注意到EntityCollectionServiceBase has a getAll()方法。但是该服务的配置在哪里进行以注册相应的端点呢?我确信我在这里遗漏了一些非常简单的东西。


从广义上讲EntityCollectionServiceBase派遣actions并通过坚持effect in EntityEffects the DefaultDataService被调用并将响应映射到其成功/失败操作。看架构概述 https://ngrx.io/guide/data/architecture-overview

因此,如果您想访问/转换从 API 返回的数据,您可以扩展/替换DefaultDataService。您可以使用以下方式注册您的自定义数据服务EntityDataService它基本上是获取或创建数据服务的数据服务注册表(如果不存在则使用默认值)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ngrx/data 实体数据服务 的相关文章

随机推荐

  • 使用 Adob​​e Flex Builder 构建 iOS 应用程序 - 性能问题

    我正在使用 Adob e Flex builder 构建一个 iOS 应用程序 并使用 Adob e 的工具将其编译为 ipa 通过初步测试 我发现最终结果并不像本机代码那样丰富 也不那么快速或流畅 不要简单地说 为什么不直接使用 Obje
  • @PostFilter 和 @PreFilter 在 Spring Security 中如何工作?

    作为 Spring 安全注释的新手 我需要对以下代码进行澄清 PostFilter hasPermission filterObject READ or hasRole ROLE ADMIN public List
  • CDI 适用于常规 Java 应用程序吗?

    我有一个简单的 Maven 项目 包含三个类 在我的META INF我有我的空beans xml 每次我运行我的Main java我得到一个NullPointerException Exception in thread main java
  • 删除的 zip 文件会导致 e.Data.GetData("FileContents") 引发异常

    我正在尝试在 WPF 应用程序中为从 zip 存档中拖动的文件实现一个处理程序 处理程序应获取文件内容以进行进一步处理 我的环境 Windows7 安装7 zip Visual Studio 2012 Express Net 4 5 下面是
  • CakePHP 多重选择“选定”不起作用

    我的编辑表单中有一个多重选择输入 当回声时 selected变量将如下所示 MySQL PHP 但是 输入不会自动选择与标签匹配的选项 但是 当我手动输入所选选项时 它会自动选择这两个选项 例如
  • 亚马逊AWS通过Java API创建EBS(弹性块存储)

    我正在尝试找到一种方法来创建新的 EBS 并通过 AWSJavaSDK 以语法方式将其附加到正在运行的实例程序 我看到了使用命令行工具和基于休息的调用来做到这一点的方法 但没有办法通过正确的 SDK 你应该能够使用创建卷 http docs
  • Azure AD 与 sonarqube 集成

    我使用 nginx 反向代理在 https 上运行 sonarqube 这是我的 nginx 反向代理配置 server server name sonarqube mydomain co in access log var log ngi
  • ASP.net 模型视图演示器值得花时间吗?

    我这个周末正在阅读有关 ASP net MVP 模式的内容 似乎即使是最简单的任务也会花费太多精力 如果以 MVP 模式进行 回报似乎是在更大的项目中 但我想 如果我将会追随MVP 为什么不直接用 ASP net MVC 来做这个项目呢 我
  • 如果是 Chrome,请使用 WebP

    因为目前只有 Chrome 和 Opera 支持 WebP 所以我想知道是否可以针对这两个特定浏览器并将它们重定向以获取我网站的另一个版本 以便我可以帮助更快地优化我的网站下载速度 Thanks 我这样解决了这个问题 检查客户端是否在 Ac
  • 同时显示选项卡栏和列表操作栏。 (安卓蜂巢)

    有一种情况 我想在操作栏中同时使用选项卡栏和列表导航 文档说 我们可以将 Actionbar 置于列表导航模式或选项卡导航模式 有没有办法同时使用两者 任何指示 帮助 先感谢您 抱歉 您只能选择其中之一 话虽这么说 你可以使用android
  • Select2 4.0.x 多复选框 JS 插件

    我正在使用Select2控制与Select2 Multi checkboxes JS插件允许多复选框选择 以下演示显示该控件可以正常工作选择2 3 x http jsfiddle net wasikuss gx93rwnk http jsf
  • 如何以编程方式检查 iPhone 中是否安装了应用程序列表

    在我的应用程序中 我显示了应用程序列表 是否有可能发现 iPhone 中是否安装了应用程序数组 如果有可能 请有人快速提供相关代码来检查 iPhone 中是否安装了一系列应用程序 在过去你可以使用canOpenURL像这样的图书馆iHasA
  • .net 8 预览版 Linux 上托管的 Azure 应用服务无法启动,显然要求安装 8.0.0-rc

    最后 App Service 可以在 Linux 容器下的 NET 8 Preview 上运行 尚不支持 Windows 我创建了一个并部署了一个简单的应用程序 但容器没有启动 如下所示 2023 09 17T20 25 27 314076
  • Google 应用内支付:如何处理 Google 的回发 JWT

    也许这是一个愚蠢的问题 但我不是高级程序员 我有 已成功为我的应用程序设置应用内付款 但它只能工作 不使用回发 url 我已经在谷歌上搜索了很多个小时 试图自己解决这个问题 但没有 成功 希望有人能帮助我 我已经包含了脚本 处理发布数据这显
  • 创建模型时使用外键自动创建模型 - Django

    我正在我的网页上创建评论部分 并希望用户能够对评论投赞成票或反对票 我的模型是这样的 class Comment models Model owner models ForeignKey User body models TextField
  • Windows attrib 命令行程序不会删除只读属性?

    我使用 windows attrib 命令删除目录只读属性并将其设置回来 如下所示 attrib r C build attrib C build C build attrib r C build attrib C build R C bu
  • 原始浮点编码

    Update原来的问题不再是这个问题的适当问题 所以我将单独保留这个问题来演示我尝试 学到的内容和背景 很明显 这不仅仅是一个 Base64 变体 而且涉及更多一些 背景 我使用 python 3 x 进行编程主要是为了与开源程序 Blen
  • 在日期/时间调用方法

    我正在寻找一个modern在给定日期 时间执行给定方法的方法 ZonedDateTime尤其 我知道Timer类和Quartz库 如下所示 线程包括完整的解决方案 Java 在特定日期执行方法 关闭 https stackoverflow
  • 如何将 Firestore 数据库从 Google 存储桶导出到 Json 文件

    情况如下 我有一个 Firestore 数据库 我每天都会将其下载到 Google Cloud Storage Bucket 作为备份 如果我想在本地下载它 我使用这个命令gsutil m cp r gs BUCKET PATH DESTI
  • ngrx/data 实体数据服务

    尝试理解ngrx data实体数据服务示例here https ngrx io guide data creating entity data services 其中显示 创建实体数据服务 在展示该服务之后 文档继续展示如何在组件中使用 n