这是一个略显凌乱的问题。虽然看起来我在问有关 amCharts 的问题,但我真的只是想弄清楚如何从 HTTP 请求中提取一个数组,然后将其转换为一个变量并将其放入 3 方 javacript。
一切从这里开始,这个问题得到了 AmCharts 支持的友好回答。
从plnker可以看出。图表正在工作。图表的数据是硬编码的:
`var chartData = [{date: new Date(2015,2,31,0,0,0, 0),value:372.10,volume:2506100},{date: new Date(2015,3,1,0, 0, 0, 0),value:370.26,volume:2458100},{date: new Date(2015,3,2,0, 0, 0, 0),value:372.25,volume:1875300},{date: new Date(2015,3,6,0, 0, 0, 0),value:377.04,volume:3050700}];`
所以我们知道 amCharts 部分有效。知道问题出在哪里将硬编码数据更改为 json 请求,以便它可以是动态的。我不认为这应该是非常困难的,但对于我的生活,我似乎无法弄清楚。
第一个问题是我在 .map、.subscribe 或 .observable 上找不到任何文档。
所以这是一个看起来与第一个非常相似的plunker,但是它有一个 http 提供程序和可注入的。它坏了,因为我不知道如何从服务中提取数据并将其放入 AmCharts 函数中。我知道如何从 http 提供程序中提取数据并使用 NgFor 在模板中显示它,但我不需要在模板(视图)中使用它。如您所见,我使用 getTitle() 函数成功地从服务传输数据。
this.chart_data =_dataService.getEntries();
console.log('Does this work? '+this.chart_data);
this.title = _dataService.getTitle();
console.log('This works '+this.title);
// Transfer the http request to chartData to it can go into Amcharts
// I think this should be string?
var chartData = this.chart_data;
所以最终的问题是为什么我不能使用服务来获取数据,将数据转换为变量并将其放入图表中。我怀疑 options.json 中可能有一些线索,因为 json 格式可能不正确?我是否声明了正确的变量?最后,它可能与observable / map有关?