我正在尝试扩展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数据)-完整指南”中有效,但不适合我。
有人知道问题可能在哪里吗?
发现问题。
不是通过EntityCollectionServiceBase服务直接调用GeneralFilterDataDirectorateService.GetAll()。
正确的调用链为:组件/服务=> EntityCollectionServiceBase => DefaultDataService