为什么没有在我的js.erb文件中工作的链接
Why isnt the the link to working in my js.erb file
我的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,但它仍然挂着,什么也没做。。。。我是不是遗漏了什么
将所有这些提取到一个分部,称之为_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")) %>);
但瑞安·比格仍然是对的,你应该:
- 使用RESTful路由和路由助手
- 对AJAX请求使用
:remote => true
,正如我所做的那样 - 确保将
id
传递给destroy
操作,以便它知道要销毁哪个对象
四件事。
一:不需要:url
选项。您只需将散列作为第二个参数传递给link_to_remote
,它就可以工作了。
第二:您应该为此使用URL帮助程序。此外,如果您使用destroy
操作,您可能希望传递一个id。这意味着您将执行以下操作:
link_to_remote 'Delete', registration_path(id)
你会为此做类似resources :registrations
的事情。虽然,不确定您的申请中是什么注册,所以我真的可以就此提供建议。
第三:最重要的是,您在link_to_remote
行中缺少散列的末尾大括号。如果您忽略了它,这将引发语法错误。
第四:link_to_remote
在Rails 3.0中已弃用。您应该使用link_to 'Delete', registration_path(id), :remote => true
相关文章:
- 使用javascript配置文件作为handlebas博客模板,但配置不是't工作正常
- 当加载几个js文件时,defer属性应该如何工作
- 限制文件类型,大小,单次上传不'无法在jquery文件上传中工作
- HTML文件中的智能Javascript建议在Visual Studio代码更新后没有日志程序工作
- 我的代码在<脚本>标记,但没有'不能在外部文件中工作
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- 在Alfresco中动态创建空间/文件夹的Javascript;t工作正确
- 如何让jQuery在我的Typescript文件中工作
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- 在html文件中添加了多个外部javascript,其中一个停止工作
- 日食添加文件而不将其复制到工作区中
- 无法让 javascript 从外部文件工作
- JavaScript 无法从单独的文件工作
- JavaScript 不能作为外部文件工作
- 如何使本地js文件工作
- 为什么头中包含的第二个js文件工作不正常
- 外部javascript文件工作但不调用函数
- 在Node.js中,异步文件IO方法是如何为本地文件工作的?
- JS -画布从图像文件-工作仅与浏览器缓存存在
- 为什么我的Javascript不从PHP文件工作