我的js.erb文件中有这个

var cart_item = "<table id='something' style='width:100%'>";
cart_item += "<tr><td>";
cart_item += "<%= @contact.name %>";
cart_item += "<%= link_to_remote 'Delete', :url => {:controller => 'registrations', :action => 'destroy' %>";
cart_item += "</td>";
cart_item += "</tr></table>";

$("#cart").append(cart_item);


它只是挂起,但是当我注释掉link_to_funtion时,一切都很好。我什至试图将其设置为link_to,但仍然挂起,什么也不做..am我错过了一些东西

最佳答案

将所有内容提取为部分内容,将其称为_cart_item.html.erb

<table id='something' style='width:100%'>
<tr><td>
<%= @contact.name %>
<%= link_to 'Delete', {:controller => 'registrations', :action => 'destroy', :id => @contact.id}, :remote => true %>
</td>
</tr></table>


然后,您的js.erb文件将如下所示:

$("#cart").append(<%= escape_javascript(render(:partial => "cart_item")) %>);


但是Ryan Bigg仍然正确,您应该:


使用RESTful路由和路由助手。
像我一样,对AJAX请求使用:remote => true
确保将id传递给destroy操作,以便它知道要销毁的对象。

关于javascript - 为什么在我的js.erb文件中无法使用的链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9287248/

10-14 02:53