仅使用Rxjs,单个ajax请求承载两个元数据请求,并在angular2的多个视图组件中提供响应

仅使用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来完成?如果是,考虑到给定的场景,那么如何

场景是,有一个服务(data service.ts)具有一个方法
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) {
    /* ... */
}