【发布时间】:2016-11-17 16:52:49
【问题描述】:
我的作品集#show 页面中有我的画布标签:
<%= content_tag :canvas, "", id: "positions_chart", width: "300", height: "300", data: {positions: @positions } %>
在我的portfolio.js 文件中,我创建了一个chartInstance 对象:
$(document).ready(function () {
var context = document.getElementById('positions_chart');
var ctx = context.getContext("2d");
var pieData = {
labels: $("#positions_chart").data(positions['name']),
datasets: [
{
backgroundColor: "rgba(220,220,220,1)",
borderColor: "rgba(220,220,220,1)",
data: $("#positions_chart").data(positions['quantity'])
}
]
}
var chartInstance = new Chart(ctx, {
type: 'pie',
data: pieData,
options: {
responsive: true
}
});
console.log(chartInstance);
});
我正在 DOM 中加载我想要的数据——位置数据的集合。
<canvas id="positions_chart" width="600" height="600"
data-positions="[{"id":1,"ticker":"AAPL","name":"Apple Inc.",
"quantity":20,"portfolio_id":1,"created_at":"2016-10-22T18:19:36.255Z",
"updated_at":"2016-10-23T01:21:38.731Z","price":"116.6"},...
style="width: 300px; height: 300px;"></canvas>
我在网上看到的例子是如何处理js文件中data和dataset属性中预加载的数据。我想要一个饼图,其标签对应于代码名称并使用我的 rails 数据库中的数据。我在画布标签中获取数据并可以在我的 js 文件中访问它。 据我了解,我将 pieData 对象传递给 ctx 对象,并且无论我选择哪个图形(在本例中为 pie),它都应该将标签和数据集呈现为图形。我不确定为什么饼图没有显示。
【问题讨论】:
标签: javascript ruby-on-rails chart.js