我有一个rails应用程序,它提供了许多视图,其中包含来自数据库的特定数据,这些数据将被某些javascript操作,特别是用于Chartjs。
我探索的选项是:
<script>
标记,只需让ERB插入变量即可。这似乎有点hacky,绝对没有利用我所有美丽的haml。但它很简单,允许我在页面上放置javascript变量,然后可以在document.onload之后获取。我觉得解决方案应该涉及资产管道和某种轨道插值,但我似乎无法使这项工作非常干净。什么是优雅的轨道4解决这个问题?
谢谢大家!
答案 0 :(得分:0)
有很多方法可以将数据从服务器端传递到javascript,我将在下面列出两种最常见的(不使用gem或其他外部工具):
使用您描述的第二种方法,并在javsacript中插入ERB标记。这是丑陋的,hacky,甚至不接近最佳实践。
使用数据属性。您可以修改HAML以包含其他属性,例如“data-my-variable”,并通过javascript访问它(例如使用jQuery:$(element).data("my-variable")
)。
在我看来,数据属性方法是最干净的方法,它正是数据属性的目的。
现在,我不知道HAML,我之前只与ERB合作,但我找到了this answer by Mandeep,它解释了如何向HAML添加数据属性:
%a{"data-my-variable" => "my data", href: "#"}
或强>
%a{href: "#", :data => {:my_variable => "my data"}}
编辑:抱歉,我发现您的问题以及其他更新的问题,我只是假设它是最近的问题,而不是一年多以前的问题:)