XHRレスポンスに応じてチャートやテーブルをホストする必要があるdivがあります。グラフの場合、chart.jsがグラフを表示するために使用するcanvas要素で置き換えるにはdivの内容が必要です。Angular-chart.jsで動的に作成されたキャンバスにチャートを作成
キャンバス要素をHTMLコードに追加すると、angular-chart.jsによってグラフがレンダリングされます。ただし、javascriptを使用してdivにキャンバスを挿入すると、canvas要素はdomにありますが、グラフは表示されません。
どうすれば対処できますか?
HTML
<div ng-controller="ChartCtrl">
<div>
{{chart.name}}
This works (doughnut):
<canvas id="chart-{{$index}}" class="chart chart-doughnut" chart-data="chart.data" chart-labels="chart.labels"></canvas>
</div>
This Doesn't work ({{chart.type}}):
<div id="chartDiv"> </div>
</div>
Javascriptを
var myApp = angular.module('myApp', ['chart.js']);
// Create the controller, the 'ToddlerCtrl' parameter
// must match an ng-controller directive
myApp.controller('ChartCtrl', function ($scope) {
var chart_div = $('#chartDiv');
chart_div.empty();
canvas_html = '<canvas id="chart-2" class="chart chart-doughnut" chart-data="chart.data" chart-labels="chart.labels"></canvas>';
console.log(canvas_html)
chart_div.append(canvas_html);
//console.log(chart_div)
$scope.chart = {
name: 'Chart 1',
type: 'Doughnut',
labels: ['EVSC', 'ISB'],
data: [13, 44]
};
});
Plunker例:http://plnkr.co/edit/9JkANojIl8EXRj3hJNVH?p=preview
スーパー!私はこれを消化する必要があります。迅速な答えをありがとう! – Lmwangi