首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将Rails变量放入JavaScript文件(D3)

如何将Rails变量放入JavaScript文件(D3)
EN

Stack Overflow用户
提问于 2018-08-02 03:10:43
回答 3查看 202关注 0票数 0

我需要从数据库中抓取数据,并将其传递到我的Rails5应用程序中的JavaScript文件。

在我的控制器中,我创建了一个变量,如下所示:

代码语言:javascript
复制
@this_anomaly = Anomaly.find_by_id(2)

显然,我可以像在我的视图中一样访问它,如下所示:

代码语言:javascript
复制
<%= @this_anomaly.started_at %>

但是我需要将相同的数据放到我的javascript文件中,我用它在D3中绘制图形,并将其注入到我的视图中。我怎么通过它呢?

不知道从哪里开始,谢谢!

EN

回答 3

Stack Overflow用户

发布于 2018-08-02 03:16:32

您可以在html.erb中声明javascript变量,如下所示

代码语言:javascript
复制
var started_at = <%= @this_anomaly.started_at %>
票数 0
EN

Stack Overflow用户

发布于 2018-08-02 03:29:11

一种选择是将HTML中的数据放在data属性中

代码语言:javascript
复制
<div data-started-at=<%= @this_anomaly.started_at %> data-for-d3-graphics></div>

然后在您的js文件中

代码语言:javascript
复制
let value = $('div[data-for-d3-graphics]').data('started-at');

我不确定这是否是.erb文件的确切语法,但是您应该明白了

票数 0
EN

Stack Overflow用户

发布于 2018-08-02 03:41:13

因此,我尝试过的一种有效的方法(因为我使用的是d3)是用以下命令请求html.erb中的数据:

代码语言:javascript
复制
<div id="anomaly_data">
    <%= @this_anomaly.started_at %>
</div>

然后在我的js文件中,使用d3.select将其存储在一个变量中:

代码语言:javascript
复制
var anomaly = d3.select("#anomaly_data").text();

它可以工作并获得日期/时间/等,而不需要对它们进行任何处理!但是,一定有更好的方法吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51640696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档