0

我遇到了@ngrx/data 的问题,我不确定它是否会被视为错误或按预期工作。问题集中在使用部分类型向商店添加新实体。

使用这个包,您可以通过几种不同的方式创建实体收集服务:

  • 注入 EntityServices 并使用它从其注册表中获取默认实体集合服务之一,如下所示......
constructor(entityServices: EntityServices) {
  this.defautHeroesService = entityServices.getEntityCollectionService('Hero');
  this.heroes$ = this.defautHeroesService.entities$;
}
  • 或者,通过扩展 EntityCollectionServiceBase 创建自定义实体集合服务,然后像这样注入该服务......
constructor(public customHeroesService: HeroesService) {
  this.heroes$ = this.customHeroesService.entities$;
}

我注意到默认与自定义实体集合服务的 add 方法的行为不同。如果您的任何数据库字段可以为空,自定义服务将允许您提供一个非常方便的部分类型。但是,使用默认服务的 add 方法,如果您尝试提供部分,TypeScript 会报错。我想避免为每个实体类型创建自定义服务,因为我首先走下这个@ngrx/data 路径的唯一原因是承诺实体数据“零 Ngrx 样板”,或者至少是最小样板。

难道我做错了什么?这有正当理由吗?还有其他方法可以获取默认服务吗?

4

0 回答 0