Данные Ngrx - расширение DefaultDataService <T>
Я пытаюсь расширить ngrx/data DefaultDataService и переопределить некоторые методы. Что мне нужно изменить в методах, так это entityUrl, и я должен отправить HttpParam (чтобы сообщить перехватчику, какая служба BE должна использоваться для конкретного запроса Http).
Поэтому я переопределяю метод getAll следующим образом:
@Injectable()
export class GeneralFilterDataDirectorateService extends DefaultDataService<IDropDown> {
constructor(
http: HttpClient,
httpUrlGenerator: HttpUrlGenerator
) {
super('Directorate', http, httpUrlGenerator);
}
getAll(): Observable<Array<IDropDown>> {
return this.http
.get<Array<IDropDown>>(`url`,
{ params: new CustomHttpParams(URL_TYPES.COMMON) })
}
}
Однако он запускает запрос Http, но не запускает событие ngrx. (данные получены, но не сохранены в хранилище ngrx)
Реализация работает в этом тренинге Udemy "NgRx (с данными NgRx) - Полное руководство", но не для меня.
Кто-нибудь знает, в чем может быть проблема?
1 ответ
Нашел проблему.
GeneralFilterDataDirectorateService.GetAll() был вызван напрямую, а не через службу EntityCollectionServiceBase.
Правильная цепочка вызовов: Component/Service => EntityCollectionServiceBase => DefaultDataService