【问题标题】:how to reload fusion chart properties with dynamic data如何使用动态数据重新加载融合图表属性
【发布时间】:2016-03-17 08:19:18
【问题描述】:

我正在使用融合图表来显示图表,但我无法使用图表属性加载数据。 当我运行我的代码时,图表首先出现,刷新后我得到了这些数据。 所以我不知道如何用图表重新加载数据

angular.module("inventory.states.material_movement", [])
    .config(function ($stateProvider, templateRoot) {
        $stateProvider.state('main.report_material_movement_display', {
            'url': '/material_movement/material_group_id/:materialGroupId/material_id/:materialId',
            'templateUrl': templateRoot + '/reports/material_movement/chart.html',
            'resolve': {
                bCurves: ['MaterialMovementService', '$stateParams', function (MaterialMovementService, $stateParams) {
                        return MaterialMovementService.query({
                            'materialGroupId': $stateParams.materialGroupId,
                            'materialId': $stateParams.materialId

                        });
                    }]
            },
            'controller': 'MaterialMovementDisplayController'
        });
    })
    .controller('MaterialMovementDisplayController', function (MaterialMovementService, $filter, $state, bCurves, $stateParams, $scope) {

        $scope.bCurves = [];
        $scope.bCurves = bCurves;

        $scope.balanceCurveData = {
            chart: {
                "caption": "Material Movement Curve",
                //              "subCaption": "Last week",
                "xAxisName": "Date",
                "yAxisName": "Quantity ",
                //              "numberPrefix": "$",
                "paletteColors": "#0075c2",
                "bgColor": "#ffffff",
                "showBorder": "0",
                "showCanvasBorder": "0",
                "plotBorderAlpha": "10",
                "usePlotGradientColor": "0",
                "plotFillAlpha": "50",
                "showXAxisLine": "1",
                "axisLineAlpha": "25",
                "divLineAlpha": "10",
                "showValues": "1",
                "showAlternateHGridColor": "0",
                "captionFontSize": "14",
                "subcaptionFontSize": "14",
                "subcaptionFontBold": "0",
                "toolTipColor": "#ffffff",
                "toolTipBorderThickness": "0",
                "toolTipBgColor": "#000000",
                "toolTipBgAlpha": "80",
                "toolTipBorderRadius": "2",
                "toolTipPadding": "5"
            },
            data: [{
                    'label': " ",
                    "value": " "
                }]
        };
        angular.forEach($scope.bCurves, function (value) {
            var x_label = $filter('date')(value.transactionDate, "MMM d, y");
            $scope.balanceCurveData.data.push({
                'label': x_label,
                'value': value.balance
            });
        });
    });

在这里,我无法将 for.Each() 循环生成的数据与图表对象一起传递。 代码正在运行,但无法使用融合图表传递数据

<div id="graph_container">
<fusioncharts
width="600"
height="400"
type="line"
datasource="{{balanceCurveData}}">

【问题讨论】:

  • 嘿,了解您的问题需要很少的信息。在这里,我相信您正在使用 angular-ui/ui-router。在您的声明中,您说您的图表首先出现,然后是刷新数据。那是什么意思?是不是 stateProvider 没有在第一次检索数据并且图表在没有任何数据的情况下呈现?你能详细说明一下吗?
  • hie,是的,实际上图表是在没有任何数据的情况下呈现的,当我单击刷新按钮时,数据会在图表上呈现。其他事情正常工作,并且正确的数据也即将到来,但它会刷新。即使第一次加载图表而没有任何数据,那时我在控制台中获取数据但未在图表上呈现。 stateProvider 数据仅在刷新时运行。
  • 尝试更新$scope.$apply函数内的数据。还有你说的刷新按钮,它是 DOM 中的一个单独的按钮,还是你说的是浏览器刷新按钮?
  • 我说的是浏览器刷新按钮。你能告诉我如何在这里使用$scope.apply
  • $scope.$apply(function(){$scope.balanceCurveData.data.push({ 'label': x_label, 'value': value.balance });})

标签: angularjs fusioncharts


【解决方案1】:

当您的图表加载时,div 会发生什么?数据源是否填充了图表属性?刷新后,数据源又会发生什么?而且,如果您可以提供小提琴链接,则可以彻底调查此问题。

【讨论】:

  • 数据源填充了图表属性,但单击时未填充。我需要刷新页面以填充该数据
猜你喜欢
  • 1970-01-01
  • 2016-06-07
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多