Ngrx /数据,如何在延迟加载的模块中添加复数名称映射?

时间:2020-07-15 23:14:04

标签: ngrx ngrx-data

从文档中,我尝试在我的延迟加载的Angular模块中添加以下提供程序...

{ provide: PLURAL_NAMES_TOKEN, multi: true, useValue: morePluralNames }

...但是那不起作用。文档中描述了类似的机制,如下所示...

{ provide: ENTITY_METADATA_TOKEN, multi: true, useValue: someEntityMetadata }

此技术不适用于延迟加载的模块。的 ENTITY_METADATA_TOKEN提供者已设置并已被 延迟加载的模块到达的时间。

该模块应改为注入EntityDefinitionService,然后 直接使用其中一种注册方法注册元数据。

class LazyModule {
  constructor(eds: EntityDefinitionService) {
    eds.registerMetadataMap(this.lazyMetadataMap);
  }
  ...
}

这是否意味着我必须使用EntityDefinitionService才能在延迟加载的模块中识别出我的复数名称?如果是这样,我该怎么做?我还没弄清楚。如果没有,关于我在做什么的任何想法?

如果需要,我可以提供更多代码,但是我主要想知道它是否应该工作,或者我是否需要为延迟加载的模块中的复数名称映射做一些不同的事情(以及“不同之处”到底是什么)。

1 个答案:

答案 0 :(得分:0)

通过该文档,您可以在延迟加载模块中注册自己的httpUrlGenerator,它对我有用。

export class LazyModule {
    constructor(eds: EntityDefinitionService, hug: HttpUrlGenerator  ) {
        eds.registerMetadataMap(entityConfig.yourEntitiyMetaData);
        hug.registerHttpResourceUrls({
            input: {
                entityResourceUrl: 'xxx/input/',            
                collectionResourceUrl: 'xxx/inputs/'
            }
        });
    }

 }