Данные Ngrx - расширение DefaultDataService <T> - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь расширить ngrx / data DefaultDataService и переопределить некоторые методы. Что я должен изменить в методах, так это entityUrl, и мне нужно отправить HttpParam (чтобы сообщить перехватчику, какую службу BE следует использовать для указанного запроса Http c).

Поэтому я переопределяю, т.е. Метод 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)

Реализация работает в этом тренинге Удеми «NgRx (с данными NgRx) - Полное руководство», но не для меня.

Имеет Кто-нибудь знает, в чем проблема?

1 Ответ

0 голосов
/ 02 апреля 2020

Обнаружена проблема.

GeneralFilterDataDirectorateService.GetAll () был вызван напрямую, а не через службу EntityCollectionServiceBase.

Правильная цепочка вызовов: Component / Service => EntityCollectionServiceBase => DefaultDataService

...