我正在尝试在Morris.js中创建一个简单的条形图,它将显示一个人的工作量,并与他们的名字配对。 (名称,工作量)|键,值|为什么在我的charts.js.erb文件中显示为'(HTML Entity?)?
为此,我创建了用户名和他们的工作量@workloads的散列。然后,在我的charts.js.erb文件中:
$(document).ready(function() {
Morris.Bar({
element: 'workload-bar-chart',
data: [
<% @workloads.each do |key, value| %>
<%= "{ y: '#{key}', a: #{value} }," %>
<% end %>
],
xkey: 'y',
ykeys: ['a'],
labels: ['Name'],
hideHover: 'auto',
resize: true
});
});
这是在浏览器中呈现的输出。 (Safari浏览器,如果你问。)
$(document).ready(function() {
Morris.Bar({
element: 'workload-bar-chart',
data: [
{ y: 'Ronny', a: 0 },
{ y: 'Jeff', a: 24 },
{ y: 'Brad', a: 41 },
{ y: 'Janice', a: 2 },
{ y: 'Jose', a: 4 },
],
xkey: 'y',
ykeys: ['a'],
labels: ['Name'],
hideHover: 'auto',
resize: true
});
});
现在,这并不在所有的Morris.js工作。我想获得的输出是这样的:
$(document).ready(function() {
Morris.Bar({
element: 'workload-bar-chart',
data: [
{ y: 'Ronny', a: 0 },
{ y: 'Jeff', a: 24 },
{ y: 'Brad', a: 41 },
{ y: 'Janice', a: 2 },
{ y: 'Jose', a: 4 },
],
xkey: 'y',
ykeys: ['a'],
labels: ['Name'],
hideHover: 'auto',
resize: true
});
});
当我在手工编码本,它完美的作品,我觉得没有什么是错的哈希本身。 (它在视图中打印得很好。)我只需要阻止我的'
转换为'
,我相信这意味着我需要以某种方式逃避它。我认为它会将我的'
转换为HTML实体(十进制)。
仅供参考,我对JavaScript几乎一无所知,而且我只用Ruby on Rails编写了一年多的代码。
在一个侧面说明,通过ERB倾销数据到JavaScript是抗图案。通常用Ajax加载它通常会更好。 – max 2014-09-26 20:46:58