仅使用Rxjs,单个ajax请求承载两个元数据请求,并在angular2的多个视图组件中提供响应
场景是,有一个服务(data service.ts)具有一个方法仅使用Rxjs,单个ajax请求承载两个元数据请求,并在angular2的多个视图组件中提供响应,angular,typescript,Angular,Typescript,场景是,有一个服务(data service.ts)具有一个方法getdata(),该方法返回http.post(url),即在调用该方法时进行ajax调用 有不同的组件,如abc.component.ts、bcd.component.ts、cde.component.ts等。它们都是在一个页面上同时创建的 我希望像下面这样,不同的组件发送不同的元数据,如clientJson,clientJson1,并期望不同的视图有不同的数据 是否可以使用Rxjs-5来完成?如果是,考虑到给定的场景,那么如何
getdata()
,该方法返回http.post(url)
,即在调用该方法时进行ajax调用
有不同的组件,如abc.component.ts
、bcd.component.ts
、cde.component.ts
等。它们都是在一个页面上同时创建的
我希望像下面这样,不同的组件发送不同的元数据,如clientJson
,clientJson1
,并期望不同的视图有不同的数据
是否可以使用Rxjs-5来完成?如果是,考虑到给定的场景,那么如何选择?
数据服务
bcd-chart.component.ts
你到底面临什么问题?谢谢@rinukkusu,415(不支持的媒体类型)。元数据为“clientJson”的图表组件仅获取数据,并且绘制得非常完美,而“clientJson1”的元数据未发送,因此不会绘制图表。但是,如果clientJson1和clientJson在两个组件中声明如下,则在两个组件中呈现相同的数据。initData(){let clientJson1={“aoId”:“M_AO_918”,“viewBys”:[“brands”],/*…/};let clientJson={“aoId”:“M_AO_918”,“viewBys”:[“usstate”],/…*/};}你到底面临什么问题?谢谢@rinukkusu,415(不支持的媒体类型)。元数据为“clientJson”的图表组件仅获取数据,并且绘制得非常完美,而“clientJson1”的元数据未发送,因此不会绘制图表。但是,如果clientJson1和clientJson在两个组件中声明如下,则在两个组件中呈现相同的数据。initData(){let clientJson1={“aoId”:“M_AO_918”,“viewBys”:[“brands”],/*…/};let clientJson={“aoId”:“M_AO_918”,“viewBys”:[“usstate”],/…*/};}
getdata(clientJson,clientJson1): Observable<JsonData[]> {
console.log('Retriving Data from Solr Server.......' + JSON.stringify(clientJson));
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
let url = "http://883.82./Ser/soSe";
return this.http.post(url, clientJson,clientJson1).map((res: Response) => res.json());
}
initData() {
let clientJson = {
"aoId": "M_AO_918",
"viewBys": ["usstate"],
/* ... */
};
this.DataService.getdata(clientJson,clientJson1).subscribe(
success => this.abcChart(success),
error => this.errorMessage = error
);
}
abcChart(jsonData) {
/* ... */
}
initData() {
let clientJson1 = {
"aoId": "M_AO_918",
"viewBys": ["brands"],
/* ... */
};
this.DataService.getdata(clientJson,clientJson1).subscribe(
success => this.bcdChart(success),
error => this.errorMessage = error
);
}
bcdChart(jsonData) {
/* ... */
}