Можете ли вы сделать это в plunker Пожалуйста, чтобы я мог легко понять это.
рий состоит в том, что существует единственный сервис (json-data-service.ts), имеющий метод getWebservicedata (), который возвращает http.post (url), т.е. он вызывает ajax-вызов при вызове метода. У меня есть разные компоненты, такие как компоненты круговой диаграммы, компоненты линейчатой диаграммы, компоненты линейных диаграмм и т. Д., И все они созданы одновременно на одной странице. Все они имеют свои разные метаданные (clientJson) и одну наблюдаемую.
Есть ли способ, с помощью которого мы можем сделать один AJAX-запрос несколькими компонентами параллельно.
Другими словами, есть ли такой способ, что перед выполнением ajax-запроса он берет все метаданные из разных компонентов (PieComponent.ts, LineComponent.ts и т. Д.) И извлекает данные из одного и того же URL-адреса для разных метаданных (clientJson) разных компонентов в то же время параллельно?
JSON-данных-service.ts getSolrData(clientJson): 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://183.82./PI3_Sor_WebSer/solrSe";
return this.http.post(url, clientJson).map((res: Response) => res.json());
}
секторный chart.component.tsinitData() {
let clientJson = {
"aoId": "M_AO_918","viewBys": ["usstate"]----------------- };
this.jsonDataService.getSolrData(clientJson).subscribe(
success => this.buildPieChart(success),
error => this.errorMessage = error
);
}
buildPieChart(jsonData) {
-----------
}
линия-chart.component.tsinitData() {
let clientJson = {
"aoId": "M_AO_918","viewBys": ["brands"]----------------- };
this.jsonDataService.getSolrData(clientJson).subscribe(
success => this.buildlineChart(success),
error => this.errorMessage = error
);
}
buildlineChart(jsonData) {
-----------
}