Я пытаюсь использовать @ ngrx / data для создания простого сервиса в Angular и получаю сообщение об ошибке EntityDefinition for entity type "Position".
при запуске компонента.
Мой EntityMetadataMap это:
const entityMetaData: EntityMetadataMap = {
Employee: {},
Position: {}
};
const pluralNames = { Employee: 'Employees', Position: 'Positions' };
export const entityConfig = {
entityMetaData,
pluralNames,
};
и мой модуль хранилища таков:
@NgModule({
declarations: [],
imports: [
StoreModule.forRoot({}),
EffectsModule.forRoot([]),
StoreDevtoolsModule.instrument(),
EntityDataModule.forRoot(entityConfig),
],
providers: [
{provide: DefaultDataServiceConfig, useValue: defaultDataServiceConfig},
PositionsDataService
]
})
export class ItwStoreModule {
constructor() {
console.log(entityConfig);
}
}
и мой сервис данных для позиции таков:
@Injectable({ providedIn: 'root' })
export class PositionsDataService extends EntityCollectionServiceBase<Position> {
constructor(serviceFactory: EntityCollectionServiceElementsFactory) {
super('Position', serviceFactory);
}
}
Я могу поставить точку останова в настройках модуля и в EntityDataModuleи я могу видеть, что определение сущности существует и устанавливается правильно (как часть EntityDataModule.forRoot(entityConfig)
.
Но когда конструктор службы запускает и вызывает super(...)
, в отладчике я вижу, чтов переданной в EntityCollectionServiceElementsFactory
сущности нет определений EntityDefinitions (обратите внимание, что «определения» пусты):
![enter image description here](https://i.stack.imgur.com/Oi5d0.png)
Что я делаю здесь неправильноОчевидно, что между тем, когда инициируется модуль хранилища и когда инжекция зависимости вводит EntityCollectionServiceElementsFactory
в службу, что-то идет не так.