2014-03-03 87 views
0

我是JavaScript和Ruby的新手,所以这个问题可能听起来很愚蠢。是否可以使用ajax加载erb?

根本的问题我尽量地址是:

在主ERB文件中,有以下行。

... 
<div> 
... 
<%= erb :page1, :locals => { :vt => var1 } %> 
</div> 

“page1.erb”的问题是,它会因某种原因做了刷新,这将导致主网页也得到刷新。

那么在这种情况下如何限制刷新的范围呢?

我想把erb的加载放在ajax调用中。但我还没有找到如何做到这一点(也许不可能?)。我找到的最接近的是“$ .getScript”,但这是加载js文件不是erb。不知道它是否可以工作,甚至不知道如何通过“:当地人”。

非常感谢您的帮助。

+0

的例子只要使用负荷() - https://api.jquery.com/load/ –

+0

@JayBlanchard,谢谢。如何传送:当地人?它只是在URL中进行编码吗?如果是这样,“page1.erb”不能使用,因为它内没有“params [vt]”。 – user180574

+0

我的这个库可能会让你感兴趣:http://phrogz.net/JS/AJAXFetch/它可以很容易地通过jQuery重新加载partials。 (是的,您必须在查询字符串或表单变量中提供足够的数据才能够再次构造该部分。) – Phrogz

回答

0

erb模板运行在服务器端,并被ruby解析。

您可以创建一个部分,如_myfile.js.erb,然后您可以通过ajax返回。最后js返回到浏览器。

这是一个js.erb文件

$('#cart').hide('blind',1000); 
$('#cart').html("<%=j render @cart %>"); 
相关问题