javascript – 如何在Rails 4中在没有刷新的情况下在页面上提交表单和更新元素

前端之家收集整理的这篇文章主要介绍了javascript – 如何在Rails 4中在没有刷新的情况下在页面上提交表单和更新元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在尝试做一些我认为相当简单的事情时遇到了很多麻烦. @H_301_2@我有一个项目列表,比方说,todos.在该列表的底部,我有一个文本字段,我在其中添加新项目到该列表.我想这样做,以便新项目动态地添加到该列表的底部,而无需像聊天窗口那样刷新整个页面.

@H_301_2@我将提交表单设置为remote:true并且它成功提交而不重新加载页面,但我不能同时将新项目显示在列表的底部.我必须刷新页面才能看到更改.

@H_301_2@我尝试了一些我在SO上找到的不同方法(这里不乏类似的问题)和网络,甚至是一个名为Sync的宝石,但每个都有自己的错误和问题,我无法工作正常.他们每个人都可能是自己的SO问题.所以我要问:是否有一个“配方”肯定会在Rails 4中成功实现这一点?

解决方法

让我们说,现在你有一个用户表单提交,
<%=form_for @user,remote: true%><%end%>
@H_301_2@你还有一个控制器,

UsersController
@H_301_2@在你的控制器中,你有一个功能,

def create
  #something
end
@H_301_2@这是形式.

@H_301_2@你唯一需要的是修改像这样的功能

def create
  #something
  respond_to do |format|
    format.js
    format.html
  end
end
@H_301_2@然后在你的视图中,在view / users /目录下,创建一个create.js文件,在文件中,你可以执行js动作,比如获取新记录,并将新记录追加到用户列表中.

@H_301_2@参考:

@H_301_2@http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#form-for

猜你在找的JavaScript相关文章