0

我正在尝试在一个简单的 Rails 项目中使用 d3.js。我用的是很幼稚的方式:直接把d3的javascript代码放到index.html.erb里面:

#index.html.erb
<script type="text/javascript">
....
rect.on("click", function(d) {
   var dataset = <%= Model.a_method d[0] %>;
....

我需要在“on click”函数中调用该方法,并且我确定 data(d) 已正确绑定到“rect”。但在<%= %>, d 内部没有定义。换句话说,如果我使用类似的东西<%= Model.a_method 10 %>而不是使用“d”,它就可以正常工作。有没有办法克服这个问题或者我错过了什么?谢谢你的帮助。

4

2 回答 2

1

不,ruby 代码在服务器端,javascript 代码在客户端。只能先用 ruby​​ 生成 javascript 代码,然后 javascript 代码才能执行。它不能以另一种方式工作。但是,您可以制作 REST API 并从 javascript 进行 AJAX 调用。

于 2013-06-12T21:53:21.680 回答
0

Rails 基于 MVC 模式,模型与您的数据和逻辑相关联,控制器将 HTTP 请求映射到动作到模型并呈现相应的视图。(这是一个非常简单的解释,如果你想要更详细的描述,google 将是你最好的朋友)。

因此,您需要做的是在您的控制器上创建一个操作,该操作将调用您模型上的方法并将结果提供给您的视图。

于 2013-06-13T20:42:20.520 回答