ruby-on-rails - Rails lazy_high_charts:如何格式化工具提示标签
问题描述
我会将小时和分钟打印到我的图表中,例如“发展:27 小时 30 米”。
现在我有这个:
在我的脚本中,“数据”代表“小时”
{
name: value.blank? ? "other" : value,
data: all_weeks.merge(data_weeks.to_h).values.map do |data_value|
data_value.nil? ? 0 : ( data_value.to_f / 60 ).round(2)
end
}
....
f.tooltip(
pointFormat: "<span style='color:{series.color}'>{series.name}</span>: <b>{point.y} h</b><br/>",
split: true
)
我试过设置point.y
但pointFormat
没有效果。(编辑:pointFormat 将是一个通用字符串!)
我该如何解决?提前致谢。
编辑:
我解决了添加:
LazyHighCharts::HighChart.new("container") do |f|
f.tooltip(
formatter: "\
function() { \
var s = []; \
s.push(this.x); \
this.points.forEach(function(point) { \
s.push('<b>' + point.series.name + '</b>: ' + Math.floor(point.y) + ' h ' + Math.floor((point.y % 1) * 60) + ' m'); \
}); \
return s; \
}".js_code,
split: true
)
....
end
解决方案
["dev: 27.5 h", "dev: 22 h", "dev: 0.3h"].map do |s|
s.gsub(/\d+(\.\d+)?\s*h/i) do |h|
h, m = h.to_f.divmod(1)
[
("#{h} h" unless h.zero?),
("#{(60 * m).round} m" unless m.zero?)
].compact.join(" ")
end
end
#⇒ ["dev: 27 h 30 m", "dev: 22 h", "dev: 18 m"]
推荐阅读
- powershell - 将字典附加到 powershell 中的字典(哈希表)
- javascript - 在Javascript中将日期历史转换为日期范围
- linux - 我在哪里可以获得更多 qtcreator 的小部件?
- javafx - 问题创建按钮,其中打开一个窗口/阶段
- reactjs - 在 redux 状态下通过 key-index 移除对象
- angular - Angular Firebase 更新代码未在快照 foreach 中执行
- url - 通过添加 url 参数更改 facelets 模板中的内容布局
- r - 无法在闪亮的仪表板中可视化输出
- sql - 在 where 子句中使用别名结果
- jquery - 计算 div 中的文本行数