【发布时间】:2016-08-09 17:00:43
【问题描述】:
我想要某种方式向我的服务器发送两个请求以获取对象列表 (DocumentComponent),在此 DocumentComponent 中我有一个对象 DocumentContents 列表
所以我需要在每次得到一个对象 DocumentComponent 后,我也得到它的 DocumentContents
this.gridService.getAllDocumentComponentByTemplate(1)
.subscribe(data => {
this.documentComponents = data;
console.log(this.documentComponents);
for (var component of this.documentComponents) {
this.getAllDocumentContents(component.id);
}
},
error => alert('Erreur ' + error),
() => {
console.log("finished ");
}
);
但是这种方法不能并行工作 我只得到最新 DocumentComponent 的最后一个 DocumentContent 列表
那么如何使用 Observable.forkJoin 或者如果有其他方法可以做到这一点,谢谢
Observable.forkJoin(
this.gridService.getAllDocumentComponentByTemplate(1),
this.gridService.getAllDocumentContentByDocumentComponent(**id**)
).subscribe(data => {
this.documentComponents = data[0];
this.documentContents = data[1];
},
err => console.error(err)
);
我试过了,但我得到了最新的 DocumentContents 列表,因为我在第二种方法 getAllDocumentContentByDocumentComponent 中将 id 作为静态值放入了我需要使其可变的静态值
感谢您的宝贵时间
getAllDocumentContentByDocumentComponent(idDocumentComponent:number) {
return this._http.get('http://localhost:8080/template/getAllDocumentContentByDocumentComponent/' + idDocumentComponent)
.map(res => res.json());
}
getAllDocumentComponentByTemplate(idDocument:number) {
return this._http.get('http://localhost:8080/template/getAllDocumentComponentByTemplate/' + idDocument)
.map(res => res.json());
}
【问题讨论】:
-
id到底是什么,并从先前的请求中获取它?谢谢! -
id 是 DocumentComponent 的 DocumentContent 的外部 id 从这个 id 我可以访问当前 DocumentComponent 的所有 DocumentContent
-
好的。
getAllDocumentComponentByTemplate返回DocumentComponent的列表?还是一个人? -
是的,它返回一个列表,我将更新我的问题
标签: angular typescript rxjs