javascript - Uncaught ReferenceError : Tankvalue is not defined

标签 javascript html angularjs fusioncharts

我想在图表中显示响应数据。但 Tankvalue 超出范围并给出错误消息

Tankvalue is not defined.

如何使变量可以全局访问。由于未定义的值,图表未加载。想要在图表中显示Tankvalue

var app = angular.module('myApp', []);
app.controller('myCtrl', function ($scope, $http) {
    $http.get('url', {
            headers: {
                'Authorization': 'Basic Pasword=='
            }
        })
        .then(function (response) {
            $scope.names = response.data;
            $scope.decodedFrame = atob($scope.names.dataFrame);
            var Tankvalue = $scope.decodedFrame.substring(6);


        });
});
FusionCharts.ready(function () {
    var fusioncharts = new FusionCharts({
        type: 'cylinder',
        dataFormat: 'json',
        id: 'fuelMeter-1',
        renderAt: 'chart-container',
        width: '200',
        height: '350',
        dataSource: {
            "chart": {
                "theme": "fint",
                "caption": "Tank",
                "subcaption": "Bakersfield Central",
                "lowerLimit": "0",
                "upperLimit": "25",
                "lowerLimitDisplay": "Empty",
                "upperLimitDisplay": "Full",
                "numberSuffix": " ltrs",
                "showValue": "1",
                "chartBottomMargin": "45",
                "showValue": "0"
            },
            "value": Tankvalue,
            "annotations": {
                "origw": "400",
                "origh": "190",
                "autoscale": "1",
                "groups": [{
                    "id": "range",
                    "items": [{
                        "id": "rangeBg",
                        "type": "rectangle",
                        "x": "$canvasCenterX-45",
                        "y": "$chartEndY-30",
                        "tox": "$canvasCenterX +45",
                        "toy": "$chartEndY-75",
                        "fillcolor": "#6caa03"
                    }, {
                        "id": "rangeText",
                        "type": "Text",
                        "fontSize": "11",
                        "fillcolor": "#333333",
                        "text": "80 ltrs",
                        "x": "$chartCenterX-45",
                        "y": "$chartEndY-50"
                    }]
                }]
            }

        },

    });
    fusioncharts.render();
});

最佳答案

Move FusionCharts.ready() inside then block as shown below.
.then(function (response) {
            $scope.names = response.data;
            $scope.decodedFrame = atob($scope.names.dataFrame);
            var Tankvalue = $scope.decodedFrame.substring(6);

            FusionCharts.ready(function () {
                var fusioncharts = new FusionCharts({
                    type: 'cylinder',
                    dataFormat: 'json',
                    id: 'fuelMeter-1',
                    renderAt: 'chart-container',
                    width: '200',
                    height: '350',
                    dataSource: {
                        "chart": {
                            "theme": "fint",
                            "caption": "Tank",
                            "subcaption": "Bakersfield Central",
                            "lowerLimit": "0",
                            "upperLimit": "25",
                            "lowerLimitDisplay": "Empty",
                            "upperLimitDisplay": "Full",
                            "numberSuffix": " ltrs",
                            "showValue": "1",
                            "chartBottomMargin": "45",
                            "showValue": "0"
                        },
                        "value": Tankvalue,
                        "annotations": {
                            "origw": "400",
                            "origh": "190",
                            "autoscale": "1",
                            "groups": [{
                                "id": "range",
                                "items": [{
                                    "id": "rangeBg",
                                    "type": "rectangle",
                                    "x": "$canvasCenterX-45",
                                    "y": "$chartEndY-30",
                                    "tox": "$canvasCenterX +45",
                                    "toy": "$chartEndY-75",
                                    "fillcolor": "#6caa03"
                                }, {
                                    "id": "rangeText",
                                    "type": "Text",
                                    "fontSize": "11",
                                    "fillcolor": "#333333",
                                    "text": "80 ltrs",
                                    "x": "$chartCenterX-45",
                                    "y": "$chartEndY-50"
                                }]
                            }]
                        }

                    },

                });
                fusioncharts.render();
            });

        });

关于javascript - Uncaught ReferenceError : Tankvalue is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44795839/

相关文章:

c# - 绑定(bind)javascript函数

html - 使图像高度响应浏览器大小

javascript - 如何打开电话拨号器?

javascript复选框/取消选中同一div中的多个项目

javascript - 在 Web 应用程序中动态加载 'pages' 或屏幕的最佳方法

javascript - try catch javascript 的建议

javascript - HTML 自定义元素子容器

angularjs - 如何使用 AngularJS 为 div 高度变化设置动画

javascript - to$q 的 typescript 定义文件

javascript - 当我刷新页面时,它会将我重定向到登录页面