Ngrx数据-扩展DefaultDataService

问题描述 投票:1回答:1

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

有人知道问题可能在哪里吗?

angular ngrx angular-ngrx-data ngrx-data
1个回答
0
投票

发现问题。

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

正确的调用链为:组件/服务=> EntityCollectionServiceBase => DefaultDataService

© www.soinside.com 2019 - 2024. All rights reserved.