我试图使用@ 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(请注意,“ definitions”为空):我在这里做错了什么?
显然,在启动存储模块与依赖项注入将
EntityCollectionServiceElementsFactory
注入服务之间之间,出现了问题。 最佳答案
您有错别字:-
应该是entityMetadata