如何使用自定义本地人渲染部分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]}}
答案 0 :(得分:1)
要将JS变量发送到ERB,您必须使用Ajax。 JS在浏览器中运行,ERB在服务器中运行,因此无法在那里查找如何使用$('#table').load()
。
除非你能用JS中的一种方式来制作自己的新HTML,否则没有ERB。唯一的问题是,如果您还需要在页面加载时从服务器输出相同的HTML,那么您将不会是DRY。