javascript - FusionCharts feedData 不是 AngularJS 中的函数

标签 javascript angularjs fusioncharts

我正在使用 fusioncharts v3.9.0 和 AngularJs v1.4.3。它工作正常,但我需要图表实时更新。 为了实现这一目标,我遵循了本教程:feeding and retrieving data using javascript 。 这是我使用 fusioncharts 指令的 html:

<div fusioncharts 
  id="mychartContainer"
  chartid="mychart"
  width="99%"
  height="98%"
  type="area2d"
  datasource="{{datasource1}}",
  events="events1">
</div>  

我的 Controller 事件如下所示:

var events1 = {
   "rendered": function (evt, args) {
                 evt.sender.chartInterval = setInterval(function () {
                 //Get reference to the chart using its ID
                 var chartRef = evt.sender;

                 $http.post("mypost")
                     .success(function (response) {
                         if (response.success === true) {
                            var last = response.results[0];
                            var strData = "&label=" + last.label + "&value=" + last.value;
                            chartRef.feedData(strData);
                         }
                     });
                 }, 5000);
               },
    "disposed": function (evt, arg) {
              clearInterval(evt.sender.chartInterval);
            }
}

因此,当chartRef.feedData(strData);时,我收到错误:TypeError:chartRef.feedData不是函数

这是 chartRefconsole.log: console.log(chartRef)

提前致谢!

最佳答案

我在问题中共享的代码中发现的可能的故障之一是提到的图表类型,即area2d。 ChartType 需要为 realtimearea 才能启用实时功能。可以查看很少的使用 FusionCharts 的实时图表示例 here

下面是一个示例片段,用于说明使用 angular-fusioncharts 的实时面积图中的 feedData 方法。 .

var app = angular.module('HelloApp', ["ng-fusioncharts"])
app.controller('MyController', function($scope) {
  $scope.dataSource = {
    "chart": {
      "caption": "Real-time stock price monitor",
      "subCaption": "Harry's SuperMart",
      "xAxisName": "Time",
      "yAxisName": "Stock Price",
      "refreshinterval": "2",
      "yaxisminvalue": "35",
      "yaxismaxvalue": "36",
      "numdisplaysets": "10",
      "labeldisplay": "rotate",
      "showValues": "0",
      "showRealTimeValue": "0",
      "theme": "fint"
    },
    "categories": [{
      "category": [{
        "label": "Day Start"
      }]
    }],
    "dataset": [{
      "data": [{
        "value": "35.27"
      }]
    }]
  };
  $scope.events = {
    rendered: function(e) {
      function addLeadingZero(num) {
        return (num <= 9) ? ("0" + num) : num;
      }

      function updateData() {
        var currDate = new Date(),
          label = addLeadingZero(currDate.getHours()) + ":" +
          addLeadingZero(currDate.getMinutes()) + ":" +
          addLeadingZero(currDate.getSeconds()),
          // Get random number between 35.25 & 35.75 - rounded to 2 decimal places
          randomValue = Math.floor(Math.random() * 50) / 100 + 35.25,
          // Build Data String in format &label=...&value=...
          strData = "&label=" + label + "&value=" + randomValue;
        // Feed it to chart.
        e.sender.feedData(strData);
      }

      var myVar = setInterval(function() {
        updateData();
      }, 3000);
    }
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="http://static.fusioncharts.com/code/latest/fusioncharts.js"></script>
<script src="https://static.fusioncharts.com/code/latest/themes/fusioncharts.theme.fint.js"></script>
<script src="http://fusioncharts.github.io/angular-fusioncharts/demos/js/angular-fusioncharts.min.js"></script>

<div ng-app="HelloApp" ng-controller="MyController">
  <div fusioncharts id="stockRealTimeChart" width="500" height="250" type="realtimearea" , datasource="{{dataSource}}" events="events"></div>
</div>

或者玩 fiddle here

关于javascript - FusionCharts feedData 不是 AngularJS 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38642756/

相关文章:

javascript - NodeJS - Passport 本地策略给了我 404

javascript - 为什么在向根工作区 package.json 添加依赖项时 yarn 会发出警告

angularjs - 运行 concat/uglify 后出现 Angular "state already defined"错误

angularjs - 为什么 ng-mouseover 不能与 ng-if 一起使用

javascript - 具有相同 Controller 而不是新 Controller 的 Angular 引导 ui 模式

ios - 尝试通过 FusionCharts XT 在 iOS 上绘制图表

reactjs - React Fusion-Charts 条形宽度

javascript - AngularJS - 根本不触发/获取 Http 请求

javascript - FusionMaps XT - VueJs - 不工作事件connectorClick

javascript - 由于位置路径名导致空白页错误