Данные 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

Другие вопросы по тегам