Проблема может быть решена с помощью EntityDefinitionService
следующим образом:
import { EntityDefinitionService } from '@ngrx/data';
import { entityMetadata } from './store/entity-metadata';
@NgModule({
imports: [CommonModule]
})
export class NotLazyLoadedFeatureModule {
constructor(private eds: EntityDefinitionService) {
eds.registerMetadataMap(entityMetadata);
}
}
Но EntityDefinitionService
ожидает EntityMetadataMap
напрямую, без оборачивания его в объект.
export const entityMetadata: EntityMetadataMap = { -> Use this
Identifiers: {}
};
/* export const entityConfig = { -> Not needed anymore
entityMetadata
};*/
Стоит отметить, что у меня есть магазин, разделенный на несколько модулей. Технически они не загружаются лениво, но мой app-store.module.ts
выглядит так:
@NgModule({
declarations: [],
imports: [
CommonModule,
StoreModule.forRoot({}),
EffectsModule.forRoot([]),
EntityDataModule.forRoot({}), <- Only needed once
NotLazyLoadedFeatureModule, <- Import not lazy loaded modules here
StoreDevtoolsModule.instrument()
]
})
export class AppStoreModule {}
Подробное объяснение разницы между JIT и AOT:
https://gist.github.com/chuckjaz/65dcc2fd5f4f5463e492ed0cb93bca60