Ngrx/数据实体数据服务 [英] ngrx/data entity data service
本文介绍了Ngrx/数据实体数据服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
尝试理解ngrx/data实体数据服务示例here,其中显示"创建实体数据服务"。在展示了该服务之后,文档继续展示如何在组件中使用ngrx/data。我感兴趣的组件部分如下:
getHeroes() {
this.heroService.getAll();
}
文档说明getAll()
发起了一个HTTP请求,但我不确定该请求实际上是在哪里发出的,或者是如何发出的。在ngrx-data repo中。它声明用以下代码替换HermerService:
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
。这很好,但我不知道这些数据是从哪里获得的。我克隆了repo,签出了finish
分支,但找不到到达终结点的内容。
例如,用于调用http.get(${api}/heroes)
forgetAll()
以获取所有英雄的服务,但已被上面的代码替换,那么这些调用发生在哪里?
我注意到EntityCollectionServiceBase
有一个getAll()
方法。但是,在哪里配置该服务以注册各自的端点呢?我确信我在这里错过了一些非常简单的东西。
推荐答案
一般而言,EntityCollectionServiceBase
调度操作,并通过EntityEffects
中的Persistent效果调用DefaultDataService
并将响应映射到其成功/失败操作。请参见Architecture Overview
DefaultDataService
。您可以使用EntityDataService
注册您的自定义数据服务,EntityDataService
基本上是获取或创建数据服务的数据服务的注册表(如果不存在,则使用默认值)。
这篇关于Ngrx/数据实体数据服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文