У меня есть модель ниже
export class ChartModel {
labelsMap: Map<String, String[]>;
LegendMap: Map<String, String[]>
}
У меня есть поля ниже в файле component.ts
chartModelMap = {X: ChartModel, Y: ChartModel, Z: ChartModel};
chartModelMap2 = new Map<string,ChartModel>();
Вызов службы и назначение объекта ChartModel из ответа. (ctype - это X, Y или Z) * 1007 *
this._chartService.getDataForBarChart(this.summaryFilterModel).subscribe(chart => {
this.chartModelMap[ctype]=chart;
chartModelMap2.set(ctype, chart);
console.log('ctype',ctype,'chart:',this.chartModelMap[ctype])
console.log('ctype',ctype,'chart:',this.chartModelMap2[ctype])
});
})
При вызове вышеуказанной службы я могу видеть объект chartModel и его поля (legentMap, LabelMap) в журнале консоли.
После сохранения в вышеуказанной функции я беру данные в другой функции. Как показано ниже
drawChart(chartType:string): any { // chart type will be X or Y or Z
console.log('this.chartModelMap>',this.chartModelMap) // This is working, in console i see the data
console.log('this.chartModelMap>',this.chartModelMap.get(chartType)) // returning undefined
console.log('this.chartModelMap>',this.chartModelMap[chartType]) // returning undefined
console.log('this.chartModelMap>',this.chartModelMap.size) // returning zero
console.log('this.chartModelMap>',Object.keys(this.chartModelMap)) // returning nothing
}
Я действительно не понимал, что происходит. Почему я не могу напрямую получить данные из MAP. Я использую angular 9 с ES5.
Ожидаю вашей помощи
Спасибо Manivannan
EDIT Ниже фрагмент из службы и вызываемой области