我通过将javascript直接放入我的haml文件中来使用谷歌图表。我已经尝试过其他一些东西(例如chartkick gem),但我仍然遇到与我现在的问题类似的问题。
问题是,当我从网址加载页面或刷新页面时,谷歌图表工作正常。但是,当我从另一个页面上的链接链接到该页面时,该图表无法加载,并且控制台会吐出Uncaught ReferenceError: google is not defined
有什么想法吗?即使我使用了gem,它也会在我刷新页面时加载,但如果我直接链接到它就不会加载。我认为这可能是一个turbolinks问题因此我在该特定页面上禁用了turbolinks,然后是全局,但我仍然遇到同样的问题。以下是我的代码
.row.show-characteristics
.col-md-3.col-xs-12
.col-md-3.col-xs-12
.col-md-3.col-xs-12
.col-md-3.col-xs-12.google-chart
#google-donut-chart
%script{type: "text/javascript", src: "https://www.google.com/jsapi"}
%script{type: "text/javascript"}
:plain
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);
var options = {
title: 'My Daily Activities'
};
var chart = new google.visualization.PieChart(document.getElementById('google-donut-chart'));
chart.draw(data, options);
}
答案 0 :(得分:1)
结果是turbolinks的一个问题。我不完全确定,但我认为jquery只是在刷新时加载。我从项目中删除了turbolink以修复它。
答案 1 :(得分:1)