@ngrx/data custom DataService - NullInjectorError: Нет поставщика для строки
Я пытаюсь добавить новый пользовательский DataService в @ngrx/data
Я расширяю класс DefaultDataService через custom-entity-data-service.ts, а затем регистрирую его в entityService, чтобы получить службу в качестве DI
заказ сущность-данных-service.ts
Шаг 1 - Определите услугу
import { Injectable } from '@angular/core';
import { DefaultDataService, HttpUrlGenerator, DefaultDataServiceConfig } from '@ngrx/data';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { SharepointService } from 'dnp-sharepoint';
// @Injectable() << NOTE - this commented out
export class SharePointEntityDataService extends DefaultDataService<any>{
constructor( entityName: string, http: HttpClient,
httpUrlGenerator: HttpUrlGenerator, config: DefaultDataServiceConfig, private sharePoint: SharepointService) {
super(entityName, http, httpUrlGenerator, config);
}
getAll(): Observable<any[]>{
console.log('calling for ',this.entityName);
return this.sharePoint.getAll(this.entityName); // << my custom call
}
}
app-store.module.ts << модуль, инкапсулирующий все данные ngrx / data
Шаг 2 - В модуле класса зарегистрируйте сервис для сущности
@NgModule({
imports: [
CommonModule,
HttpClientModule,
StoreModule.forRoot({}),
EffectsModule.forRoot([]),
EntityDataModule.forRoot(entityConfig),
environment.production ? [] : StoreDevtoolsModule.instrument(),
],
providers: [Store, SharePointEntityDataService]
})
export class AppStoreModule {
constructor(private entityDataService: EntityDataService, private sharepointEntityDataService: SharePointEntityDataService) {
this.entityDataService.registerService('Registry', this.sharepointEntityDataService);
}
}
simple.component.ts
Шаг 3 - Пользователь в компоненте
constructor(private registryService: RegistryService, private entityDataService: EntityDataService,
private sharePointDataService: SharePointEntityDataService) {
this.registryService.getAll().subscribe(obj=>console.log('ger all ...',obj));
}
ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[SharePointEntityDataService -> String]:
StaticInjectorError(Platform: core)[SharePointEntityDataService -> String]:
NullInjectorError: No provider for String!
NullInjectorError: StaticInjectorError(AppModule)[SharePointEntityDataService -> String]:
StaticInjectorError(Platform: core)[SharePointEntityDataService -> String]:
Я думаю, что ошибка из-за некоторого внедрения зависимости, но не в состоянии выяснить. Любые предложения будут с благодарностью.
Спасибо