【问题标题】:Angular-Chart not rendering anythingAngular-Chart 没有渲染任何东西
【发布时间】:2015-06-29 23:36:34
【问题描述】:

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

这是 HTML 中的图表:

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

  ng-show="{{graph.visible}}">
</canvas> 

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

  $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;

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

<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>

EDIT//我想知道为什么它有ng-hide这个类

EDIT2// 当我手动删除ng-hide 类时,我可以看到一个带有网络检查器的白色块。否则我什至找不到。

EDIT3// 另外,当我在 HTML 文件中添加 class="" 时,它不会删除 ng-hide 类。

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

【问题讨论】:

  • 控制台有错误吗?你能提供jsfiddle ot plunker吗?
  • 控制台中没有错误。是的,我会在几分钟内提供一个 plunker 或其他东西!
  • plnkr.co/edit/2Wr3HvMzcwfQG2tmsJgX?p=preview 这是一个笨蛋!希望你能帮助我!
  • 你错误地使用了角度图表 :-) 等一下,我提供了一些修复
  • 哦,真的吗?我很好奇!

标签: javascript angularjs chart.js


【解决方案1】:

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

<div class="chart-container" ng-show="graph.visible">
  <canvas #myChart class="my-4" width="900" height="380"></canvas>
</div>

【讨论】:

  • @AnandA.S 我记得它与 ng-show="graph.visible" 有关,但真的不确定,因为这是一个旧答案!
【解决方案2】:

当它是来自范围的数据时,您不必使用 {{}},因此您必须像这样进行更改:

<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>   

此外,数据应该是数组的数组,如

$scope.graph.data = [[1, 2, 3, 4, 5, 6, 7, 8]];

在这里查看工作中的 Plunker(由 Grundy 在 cmets 中修复):http://plnkr.co/edit/xQ42shTY6qrteNXOYX2F?p=preview

【讨论】:

  • 我也是这么想的,但是因为没有花括号,它只会打印“graph.visible”,所以我把它们放在它周围。现在它打印“真”或“假”。我知道这很奇怪。我在原始帖子中评论了一个 plunker,在那里查看!
  • 当你没有括号并且你将“画布”悬停在开发工具中时,你可以看到它就在那里。您的问题是“画布”不是指令或不做任何事情。
  • 当我删除它时,画布确实可见(但仍然是白色的......),但它在网络检查器中有ng-show="graph.visible"。这样好吗?
  • @XavierBalloy 但 legend 不会改变动态,我的意思是如果在开始时 graph.legendtrue 传说总是 true,即使设置了 graph.legend
  • @JeroenJK 只是隐藏不是图形元素,而是像这样的图形容器plnkr.co/edit/xQ42shTY6qrteNXOYX2F?p=preview
猜你喜欢
  • 2014-06-01
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 2017-01-22
  • 2016-12-10
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多