不确定如何在@ngrx/data 中进行“加入”

问题描述

我有三个实体

evidence {claimId; string,subject1Id: string,subject2Id:string,claim: Claim,subject1: Subject,subject2: Subject
         }
claim {id,...}
subject {id,...}

我正在处理每个流。 假设已填充 claimId、subject1Id 和 subject2Id 并且该声明、主题 1 和主题 2 不是 我想以一个新的集合结束:

evidence { claimId,subject1Id,subject2Id,claim: <where claim.id == this.claimId>,subject1: <where subject.id == this.subject1Id>,subject2: <where subject.id == this.subject2Id>
         }

我似乎无法理解如何建造商店管道。

非常感谢建议或指向示例的指针。

解决方法

只需将您的信息流组合起来,即可组合成您想要的模型

export class EvidencesService extends EntityCollectionServiceBase<Evidence> {
  ....
  constructor(...,pricate subjectsService: SubjectsService,private claimsServiceL ClaimsService) {
  ...
  }

  expandedEntities$ = combineLatest([
     this.entities$,this.subjectsService.entities$,this.claimsService.entities$,]).pipe(map(([evidences,subjects,claims]) =>
    Object.fromEntries(Object.entries(evidences)).map(([id,evidence]) => [id,{
      ...evidence,claim: claims[evidence.claimId],subject1: subjects[evidence.subject1Id],subject2: subjects[evidence.subject2Id],}])
    
  ));
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...