问题标签 [ngrx-data]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2300 浏览

angular - 使用@ngrx/data,得到“没有实体类型 [x] 的实体定义”

我正在尝试使用 @ngrx/data 在 Angular 中创建一个简单的服务,并且EntityDefinition for entity type "Position".在组件运行时收到错误消息。

我的 EntityMetadataMap 是这样的:

我的商店模块是这样的:

我的职位数据服务是这样的:

我可以在模块设置和 EntityDataModule 中放置一个断点,我可以看到实体定义存在并且设置正确(作为EntityDataModule.forRoot(entityConfig).

但是当服务的构造函数触发并调用super(...)时,在调试器中,我可以看到传入的没有 EntityDefinitions EntityCollectionServiceElementsFactory(注意“定义”是空的):

在此处输入图像描述

我在这里做错了什么?显然,在 store 模块启动和依赖注入注入EntityCollectionServiceElementsFactory服务之间,出现了问题。

0 投票
1 回答
58 浏览

angular-ngrx-data - 获取ngrx/data的add操作的结果或HTTP响应

实体数据服务文档中所述,添加操作需要将实体保存在后端。它没有说的是它期望从后端返回创建的实体(带有 ID 等)。我的后端做到了,它按预期工作,但是

当我点击返回 Observable 的添加操作时,至少我的 IDE 为我提供了 Observable 方法以继续......最好用一段代码来演示

控制台根本没有记录任何内容。

我的问题是,我如何获得从 HTTP 服务返回的内容?例如实体,持久化到后端数据库?

0 投票
2 回答
479 浏览

angular - 无法使用 multipart/formdata 更新实体 - NgRx 数据

我正在尝试更新我的一个也具有文件上传功能的实体。我可以使用 add 方法发送(添加)FormData,但无法更新。NgRx 给出以下错误:

错误:主键不能为空/未定义。

这甚至可能吗?还是我做错了什么。请看下面的代码:

请指引我正确的方向。谢谢

0 投票
1 回答
1605 浏览

ngrx - 我们可以将 NgRx 数据与分页样式的 REST API 响应一起使用吗?

我目前正在使用 NgRx Data 对我项目中的几个实体执行 CRUD 操作。现在,我必须开发分页。因此,REST API 响应将如下所示:

AFAIK,NgRx 数据适用于实体,我不知道如何处理这个问题。你能把我引向光明吗?谢谢你。

0 投票
1 回答
102 浏览

typescript - NGRX data: EntityServicesBase constructor accepts only one argument

I try to create a Sub-class EntityServices for application class convenience according to the NGRX/data documentation at https://ngrx.io/guide/data/entity-services#sub-class-entityservices-for-application-class-convenience

Unfortunately the provided example doesn't seem to work with the latest version of ngrx/data 8.5.2. The example looks like:

When I use the example with my code, I get the following TypeScript error:

Error: (parameter) entityCollectionServiceFactory: EntityCollectionServiceFactory Expected 1 arguments, but got 2. ts(2554)

for the line when I call the parents constructor super(...) It looks like EntityServicesBases constructor is only accepting 1 argument of type EntityServicesElements. But how can I create my custom AppEntityService? I couldn't find any working example.

0 投票
1 回答
134 浏览

javascript - NgRx Data updateOneInCache 将类更改为对象

如果我使用 updateOneInCache,那么之后任何类都将转换为对象。使用 removeOneFromCache 并在 addOneToCache 之后不会发生这种情况。使用 updateOneInCache 时如何解决此问题?

0 投票
2 回答
728 浏览

angular - ngrx/data error$ 流 - 忽略以前的值

我在我的应用程序中使用 ngrx/data 并试图弄清楚如何使用error$流来显示组件中的错误。基本上,我使用带有表单的模态弹出窗口来创建实体,并且我正在使用error$流来显示保存它时发生的任何错误。我遇到的问题是,如果发生错误并显示并在下次打开时关闭弹出窗口,则会显示上一个错误。这是error$选择器的代码

问题出在shareReplay(1). 我试图弄清楚如何在重新打开模式并再次订阅 error$ 流时忽略或过滤掉先前的错误。

rxjs 中有没有办法忽略或过滤掉来自 sharedReplay 主题的先前发射?

0 投票
3 回答
293 浏览

ngrx - ngrx/data:拥有多个 api 根的最佳方式?

我需要针对来自不同角度模块的不同 api 端点根。

例如

据我所知,ngrx/data 调用的 api 根可以通过 app.module 中的方式进行更改,但只能在全局范围内DefaultDataServiceConfig更改

如何在不同的 Angular 模块中有不同的 api 根?

目前我正在使用 aCustomizeHttpUrlGenerator根据我的命名约定更改网址,但我想有更好的方法。

谢谢

0 投票
1 回答
285 浏览

angular - Angular ngrx-data 将服务响应写入单独的 entityCache 部分

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

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

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

有没有办法规范化/拆分数据并将其写入不同的部分entityCache

非常感谢您的任何提示。

0 投票
2 回答
1214 浏览

angular - ngrx 8:来自 reducer 函数的 @ngrx/data 实体的访问状态

我需要在 reducer 函数中访问 ngrx/data 实体的状态。

我正在构建一个寻呼机(分页),用户可以在其中导航到最后一页以及其他选项。但我不知道缓存中有多少项目,EntitySelectorsFactorydoes( selectCount),但我不想在组件中获取数据并使用道具来传递它们,而是它们应该在减速器中。

或者也许有更好的方法。

行动

减速机

不管我在做什么

它总是 0.rantSelectors.selectCount.length或以上。可能是因为长度为 0。我还需要知道increment减速器中“咆哮”实体的长度或数量。

我不知道如何获得实际价值。

我在想......有一个实体计数选择器并使用道具在toEnd动作中传递该计数。另一种选择是副作用,但它们令人困惑,恕我直言不是编写代码的正确方法(不可读的代码,缺少直接原因/结果,是的,我知道,我不想争论它)。然后,即使创建了一个副作用,如何在模块中定义它?它会是AppEffects副作用还是明显的副作用?我猜 AppEffects 因为它不在另一个模块中。

app.module.ts

AppEffects = 几乎是空的,默认ng add内容。

所以是的,我需要在 reducer 中获取 @ngrx/data 实体的状态,获取它的实际值,或更优雅的方法。