2

我正在尝试扩展 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 数据)-完整指南”中有效,但不适用于我。

有谁知道问题可能是什么?

4

1 回答 1

0

发现问题。

GeneralFilterDataDirectorateService.GetAll() 是直接调用的,而不是通过 EntityCollectionServiceBase 服务。

正确的调用链是:Component/Service => EntityCollectionServiceBase => DefaultDataService

于 2020-04-02T18:43:41.860 回答