Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chart.js未显示在我的视图中_Javascript_Angularjs_Charts_Chart.js - Fatal编程技术网

Javascript Chart.js未显示在我的视图中

Javascript Chart.js未显示在我的视图中,javascript,angularjs,charts,chart.js,Javascript,Angularjs,Charts,Chart.js,我有一个运行angular.js的应用程序,我的一个视图应该加载一个图表。我使用的是chart.js,但由于某些原因,它无法工作,并且在我的控制台上没有显示任何错误。 以下是创建图表的函数: $scope.writeBatteryChart = function(){ console.log("Function was called"); var data = { labels: ["10:30am", "11:00am", "11:30a

我有一个运行angular.js的应用程序,我的一个视图应该加载一个图表。我使用的是chart.js,但由于某些原因,它无法工作,并且在我的控制台上没有显示任何错误。 以下是创建图表的函数:

$scope.writeBatteryChart = function(){
        console.log("Function was called");
        var data = {
            labels: ["10:30am", "11:00am", "11:30am", "12:00pm", "12:30pm", "01:00pm", "01:30pm"],
            datasets: [
                {
                    label: "Battery",
                    fillColor: "rgba(220,220,220,0.2)",
                    strokeColor: "rgba(220,220,220,1)",
                    pointColor: "rgba(220,220,220,1)",
                    pointStrokeColor: "#fff",
                    pointHighlightFill: "#fff",
                    pointHighlightStroke: "rgba(220,220,220,1)",
                    data: [65, 59, 80, 81, 56, 55, 40]
                }
            ]
        };

        var options = {
            responsive: true,
            bezierCurve : false
        }

        var ctx = document.getElementById("myChart").getContext("2d");
        var myLineChart = new Chart(ctx).Line(data, options);

    }
以下是图表应显示的HTML:

               <div class="row">
                    <div class="col-md-8 col-sm-8 col-xs-8" style="padding-left: 0px;">
                        <div class="panel panel-info">
                          <div class="panel-heading">
                            <h3 class="panel-title">Battery <i class="fi-battery-half"></i></h3>
                          </div>
                          <div class="panel-body">
                            <canvas id="myChart" height="300"></canvas>
                          </div>
                        </div>
                    </div>
                    <div class="col-md-4 col-sm-4 col-xs-4" style="padding-left: 0px; padding-right: 0px;">

                    </div>
                </div>

电池
我还正在加载Chart.js的最新版本:

    <!--Chart plugin -->
    <script src="bower_components/Chart.js/Chart.js" language="javascript"></script>

我注意到的一件事是画布呈现为0维:


有人能看到我哪里做错了吗?

您必须将渲染的内容添加到画布中。希望它能帮助解决这个问题:我在画布加载到视图之前调用了函数,所以我使用了
setTimeout()
延迟调用
writeBatteryChart()
,以等待画布被渲染。

我在ajax调用完成之前尝试加载数据时遇到了类似的问题,因此,我首先进行ajax调用,并设置onSuccess回调绘制图表,相关问题: