当尝试使用新的@ ngrx / data模块且无法完全理解远程服务器更新实现时,默认的OOTB实现是什么以及如何覆盖它。 当我自己尝试实现该功能时,出现以下有关接口重复EntityServerCommands.delete方法的错误。 会很乐意回答我的特定问题,甚至会提供一个更好的示例。
在查看@ ngrx / data指南时,我找不到有关如何实现远程服务器更新部分的正确说明或howto示例。 甚至不通过实体服务,EntityCollectionService和EntityServerCommands。
@Injectable({ providedIn: "root" })
export class RequestService extends EntityCollectionServiceBase<RequestInfo> implements EntityServerCommands<RequestInfo>
{
constructor(serviceElementFactory: EntityCollectionServiceElementsFactory, private repository: DataService<RequestInfo>) {
super("Request", serviceElementFactory);
}
// inherited from data/EntityServerCommands
add(entity: RequestInfo, options?: EntityActionOptions): Observable<RequestInfo> {
return this.repository.add(entity);
}
delete(entity: RequestInfo, options?: EntityActionOptions): Observable<number> {
return this.repository.remove(entity.Id)
.pipe(map(r => r.Request.Id));
}
delete(key: number, options?: EntityActionOptions): Observable<number> {
return this.repository.remove(key)
.pipe(map(r => r.Request.Id));
}
getAll(options?: EntityActionOptions): Observable<RequestInfo[]> {
return this.repository.list();
}
.
.
.
}
主要得到以下错误的变化:
重复的函数实现。
类型“ RequestService”中的属性“删除”不能分配给基本类型“ EntityServerCommands”中的相同属性。 类型'{{entity:RequestInfo,options ?: EntityActionOptions)=> Observable'不能分配给类型'{{entity:RequestInfo,options ?: EntityActionOptions):Observable; (键:字符串|数字,选项?:EntityActionOptions):可观察; }'。 参数“实体”和“键”的类型不兼容。 输入'string |数字”不可分配给“ RequestInfo”类型。 不能将“字符串”类型分配给“请求信息”类型。