Angular-Chart不呈现任何内容

Jer*_*nJK 5 javascript angularjs chart.js

我正在使用AngularJS构建应用程序.在这个应用程序中,我想显示一些包含一些数据的折线图.我有一个带有两个"标签"的页面.我使用了我自己的实现:顶部的两个按钮,$scope.graph.visible布尔值,通过单击这些按钮来设置.

这是HTML中的图表:

<canvas 
  data="{{graph.data}}"
  labels="{{graph.labels}}"
  options="{{graph.options}}"
  legend="{{graph.legend}}"

  ng-show="{{graph.visible}}">
</canvas> 
Run Code Online (Sandbox Code Playgroud)

在控制器中我得到了这个:

  $scope.graph.data = [1, 2, 3, 4, 5, 6, 7, 8];
  $scope.graph.labels = ['hoi', 'doei', 'hallo', 'hee', 'hoi', 'doei', 'hallo', 'hee',];
  $scope.graph.options = {
    animation: false
  };
  $scope.graph.legend = true;
Run Code Online (Sandbox Code Playgroud)

在页面的源代码中,我看到了这一点(当图表应该可见时):

<canvas data="[1,2,3,4,5,6,7,8]" labels="["hoi","doei","hallo","hee","hoi","doei","hallo","hee"]" options="{"animation":false}" series="" colours="" getcolour="" click="" hover="" legend="true" ng-show="true" class="ng-hide" style="">
</canvas>
Run Code Online (Sandbox Code Playgroud)

编辑//我想知道为什么它有这个课程 ng-hide

EDIT2 //当我手动删除ng-hide类时,我可以看到带有Web检查器的白色块.否则我甚至找不到.

EDIT3 //此外,当我添加class=""HTML文件时,它不会删除ng-hide该类.

EDIT4 // http://plnkr.co/edit/2Wr3HvMzcwfQG2tmsJgX?p=preview

Ali*_*deh 8

添加以下div容器canvas为我解决了问题,请检查以下内容:

<div class="chart-container" ng-show="graph.visible">
  <canvas #myChart class="my-4" width="900" height="380"></canvas>
</div>
Run Code Online (Sandbox Code Playgroud)


Xav*_*loy 6

当来自作用域的数据时,您不必使用{{}},因此您必须像这样更改:

<canvas 
    class="chart chart-line"
    data="graph.data"
    labels="graph.labels"
    series="graph.series"
    options="graph.options"
    legend="graph.legend"
    ng-show="graph.visible">
  </canvas>   
Run Code Online (Sandbox Code Playgroud)

此外,数据应该是一个数组的数组

$scope.graph.data = [[1, 2, 3, 4, 5, 6, 7, 8]];
Run Code Online (Sandbox Code Playgroud)

在这里查看正在使用的Plunker(在评论中由Grundy修复):http://plnkr.co/edit/xQ42shTY6qrteNXOYX2F?p = preview