我无法创建我的each循环来处理带有Rails实例的jQuery图表
大家好,我正试图显示球员的名字和他赚的钱,不幸的是,如果我只键入一次球员,它只显示一个球员,我知道我需要创建每个循环,但我无法使它工作,你能帮我吗。第一行{y:,标签:}不起作用,但第二行起作用,但每次都显示相同的名称,因为它不在循环中。如何修复它我无法创建我的each循环来处理带有Rails实例的jQuery图表,jquery,ruby-on-rails,ruby-on-rails-4,Jquery,Ruby On Rails,Ruby On Rails 4,大家好,我正试图显示球员的名字和他赚的钱,不幸的是,如果我只键入一次球员,它只显示一个球员,我知道我需要创建每个循环,但我无法使它工作,你能帮我吗。第一行{y:,标签:}不起作用,但第二行起作用,但每次都显示相同的名称,因为它不在循环中。如何修复它 window.onload=函数(){ var chart=new CanvasJS.chart(“chartContainer”{ animationEnabled:没错, 主题:“light2”、“light1”、“light2”、“dark1
window.onload=函数(){
var chart=new CanvasJS.chart(“chartContainer”{
animationEnabled:没错,
主题:“light2”、“light1”、“light2”、“dark1”、“dark2”
标题:{
正文:“顶级石油储量”
},
axisY:{
标题:“储量(百万桶)”
},
数据:[{
键入:“列”,
showInLegend:是的,
legendMarkerColor:“灰色”,
传奇文本:“百万桶=一百万桶”,
数据点:[
{y:,标签:},
{y:266455,标签:'},
{y:169709,标签:'},
{y:158400,标签:'},
{y:142503,标签:'},
{y:101500,标签:“科威特”},
{y:97800,标签:“阿联酋”},
{y:80000,标签:“俄罗斯”}
]
}]
});
chart.render();
}
看起来您没有正确设置@player。在没有看到控制器的情况下,我无法确定,但我猜您想要的是result.HomeTeam.players,而不是@player 您在每次循环迭代中创建并设置一个新图表,然后将其全部丢弃。如果查看呈现的HTML源代码,您将看到与@results
中的条目一样多的window.onload(){..}
调用
你真的只需要在@results
数组上循环一次,然后构建一个内部数据点有效负载——你只需要将其传递给图表构建函数一次
大概是这样的:
<script>
var datapoints = [];
<% @results.each do |result| %>
datapoints.push({y: "<%= result.FTAG %>", label: "<%= result.HomeTeam %>"});
<% end %>
</script>
<script>
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
theme: "light2", // "light1", "light2", "dark1", "dark2"
title:{
text: "Top Oil Reserves"
},
axisY: {
title: "Reserves(MMbbl)"
},
data: [{
type: "column",
showInLegend: true,
legendMarkerColor: "grey",
legendText: "MMbbl = one million barrels",
dataPoints: datapoints
}]
});
chart.render();
}
</script>
var数据点=[];
数据点推送({y:,标签:});
window.onload=函数(){
var chart=new CanvasJS.chart(“chartContainer”{
animationEnabled:没错,
主题:“light2”、“light1”、“light2”、“dark1”、“dark2”
标题:{
正文:“顶级石油储量”
},
axisY:{
标题:“储量(百万桶)”
},
数据:[{
键入:“列”,
showInLegend:是的,
legendMarkerColor:“灰色”,
传奇文本:“百万桶=一百万桶”,
数据点:数据点
}]
});
chart.render();
}
我现在将在一秒钟内给你代码+控制器此代码显示最后一个玩家和钱,非常感谢,你救了我的命!真的非常感谢你!我只是不懂JS和Jquery,非常感谢!!!!!!!!!!!!!!!!!
<script>
var datapoints = [];
<% @results.each do |result| %>
datapoints.push({y: "<%= result.FTAG %>", label: "<%= result.HomeTeam %>"});
<% end %>
</script>
<script>
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
theme: "light2", // "light1", "light2", "dark1", "dark2"
title:{
text: "Top Oil Reserves"
},
axisY: {
title: "Reserves(MMbbl)"
},
data: [{
type: "column",
showInLegend: true,
legendMarkerColor: "grey",
legendText: "MMbbl = one million barrels",
dataPoints: datapoints
}]
});
chart.render();
}
</script>