我正在尝试使用在另一台服务器(确切地说是端口)上运行的API将数据加载到ng2-admin模板中的某些图表中。

我在lineChart.service.ts中的代码如下:

return {
  type: 'serial',
  theme: 'blur',
  marginTop: 15,
  marginRight: 15,
  responsive: {
    'enabled': true
  },
  dataLoader: {
    url: 'http://localhost:4000/reporting/temperatures',
    format: 'json',
    showErrors: true,
    noStyles: true,
    async: true
  },

  categoryField: 'MeasureMoment',
  categoryAxis: {
    parseDates: true,
    gridAlpha: 0,
    inside: true,
    color: layoutColors.defaultText,
    axisColor: layoutColors.defaultText
  },
  valueAxes: [
    {
      minVerticalGap: 50,
      gridAlpha: 0,
      color: layoutColors.defaultText,
      axisColor: layoutColors.defaultText,
      labelFunction: this.formatLabel
    }
  ],
  graphs: [
    {
      id: 'g0',
      bullet: 'none',
      useLineColorForBulletBorder: true,
      lineColor: colorHelper.hexToRgbA(graphColor, 0.3),
      lineThickness: 1,
      negativeLineColor: layoutColors.danger,
      type: 'smoothedLine',
      valueField: 'Temperature',
      fillAlphas: 1,
      fillColorsField: 'lineColor'
    }
  ],
  chartCursor: {
    categoryBalloonDateFormat: 'MM YYYY',
    categoryBalloonColor: '#4285F4',
    categoryBalloonAlpha: 0.7,
    cursorAlpha: 0,
    valueLineEnabled: true,
    valueLineBalloonEnabled: true,
    valueLineAlpha: 0.5
  },
  dataDateFormat: 'MM YYYY',
  export: {
    enabled: true
  },
  creditsPosition: 'bottom-right',
  zoomOutButton: {
    backgroundColor: '#fff',
    backgroundAlpha: 0
  },
  zoomOutText: '',
  pathToImages: layoutPaths.images.amChart
};


这与默认页面没有什么不同,除了数据的一部分之外,在原始模板中,原始模板中有一个dataProvider元素,其中包含了数据,我将其替换为一个dataLoader,我之前已经成功使用过。

我用我的API返回的元素替换了valueField和CategoryField值。据我所知,应该可以解决问题。
重新加载页面时,我看不到任何图表。

我已经测试了API,该API返回数据。每当调用API时,都会向控制台添加一个日志行,以显示请求。重新加载ng2-admin页面时,我看不到任何请求。

当我犯一些错误并看到错误消息时,我可以调查一下,但是没有任何错误消息。

我可以帮忙弄清楚这一点。如果需要更多信息,我将很高兴与您分享。

谢谢!

最佳答案

因此,对于正在寻找相同功能的任何人,解决方案如下:

正如xorspark所述:要使用dataLoader功能,您应该包含dateloader.js或dataloader.min.js
但是由于Angular框架/ CLI框架(不确定是哪个原因引起的)默认情况下不使用常规结构,所以我有些困惑。
在ng2-admin模板的源代码中进行搜索后发现,文件baAmChart.compo‌nent.ts包含amchart的导入(“替换”):

import 'amcharts3';
import 'amcharts3/amcharts/plugins/responsive/responsive.js';
import 'amcharts3/amcharts/serial.js';


我刚刚添加了dataloader导入

import 'amcharts3/amcharts/plugins/dataloader/dataloader.js';


这就解决了“无法加载”的问题。当然可以在这里添加其他插件。

再次感谢您将我指向dataloader.js xorspark!

关于javascript - 带有DataLoader的Ng2-Admin模板图表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44523707/

10-09 18:33