繁体   English   中英

在Rails 3中使用.js.erb for Ajax(jquery .js vs .js.erb)

[英]Usage of .js.erb for Ajax in Rails 3 (jquery .js vs .js.erb)

我有两种方法可以在Rails 3应用程序中实现ajax。

1-使用文件viewaction.js或viewaction.js.coffee中的jquery将事件绑定在提交上,并管理返回的json以修改DOM中的内容。

2-在Rails中使用remote => true标记并编写一个名为viewaction.js.erb的文件,以在DOM中进行修改并使用加载在控制器中的类变量。

  • Rails 3中推荐的方法是什么?
  • Rails的做法是什么?
  • 什么是最佳做法?
  • 当其中一个替代方案最好时,具体情况如何?
  • 大项目的建议是什么?

谢谢

在Rails 3之前,添加:remote => true会在表单标记内部生成一堆内联JavaScript,但是使用Rails 3 UJS,唯一的变化是添加了HTML 5自定义属性data-remote=true 例如:

<%= form_for(@post, :remote => true) do |f| %>  

会产生

<form accept-charset="UTF-8" action="/posts" class="new_post" data-remote="true" id="new_post" method="post">  

目前,这是rails3方法 生成它的js函数位于rails.js文件下。 如果打开rails.js文件,您会注意到几个远程处理程序定义。 第一个处理远程表单提交的情况,第二个处理远程链接和输入字段,第三个处理应该表现为喜欢的非远程链接。

深入研究代码我发现这个文件实际执行jQuery ajax调用:

ajax: function(options) {
      return $.ajax(options);
    },

所以使用:remote => true和常规jQuery ajax调用之间没有区别rails就像一个包装器来调用相同的方法。

更多信息在这里这里这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM