使用自定义本地人从javascript渲染部分内容

时间:2014-01-25 00:41:21

标签: javascript ruby-on-rails ruby erb

如何使用自定义本地人渲染部分javascript?

我确实有这样的事情:

var begin = $("#begin_date").val();
var end = $("#end_date").val();

$("#table").html("<%= escape_javascript(render partial: 'my_partial', locals: { begin_date: begin_d, end_date: end_d}) %>")

所以,我知道'begin_d'和'end_d'必须是.erb才能加载。 有没有传递javascript变量以呈现部分自定义本地值?还是以其他任何方式实现同​​样的目标?

我的目的是根据日期刷新一个表(如果它们被更改)。

修改

我找到了答案。 Phlip指出我应该使用Ajax。 所以现在,我向控制器发出了一个Ajax请求:

respond_to do |format| 
  format.html {render partial: 'my_partial', locals: {begin_date: params[:begin_date], end_date: params[:end_date]}}

1 个答案:

答案 0 :(得分:1)

要将JS变量发送到ERB,您必须使用Ajax。 JS在浏览器中运行,ERB在服务器中运行,因此无法在那里查找如何使用$('#table').load()

除非你能用JS中的一种方式来制作自己的新HTML,否则没有ERB。唯一的问题是,如果您还需要在页面加载时从服务器输出相同的HTML,那么您将不会是DRY。