javascript – js.erb文件正在执行两次. Ruby on Rails – private_pub

前端之家收集整理的这篇文章主要介绍了javascript – js.erb文件正在执行两次. Ruby on Rails – private_pub前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究聊天模块.为此,我使用了private_pub gem.在这个模块中,我已经制作了三个频道,但我不能在这里提到所有这些频道,因为它会显示一个非常非常大的页面.所以让我们坚持一个渠道.

我点击频道“<%= subscribe_to”/ conversation / send_invitation“%>”的链接然后ajax工作并转到“conversation / send_invitation”(只有一次 – 这没关系)和我的“/ conversations / send_invitation”我有

  1. def send_invitation
  2. @conversation = Conversation.new(conversation_params)
  3. respond_to do |format|
  4. format.js { render :layout => false }
  5. format.html
  6. end
  7. end

然后在我的send_invitation.js.erb文件中,我有以下内容

  1. <% publish_to "/conversations/send_invitation" do %>
  2. var recipient_id = "<%=@conversation.recipient.id %>";
  3. var current_temp_user = $("#current_temp_user").val();
  4.  
  5. if(recipient_id == current_temp_user){
  6. console.log('here')
  7. $("#invitation_div").html("<%=j(render :partial => '/restaurants/invitation')%>");
  8. card_modal = $('#invitation_card').modal();
  9. card_modal.modal('show');
  10. }
  11. <% end %>

这是我的application.js文件

  1. //= require jquery
  2. // require jquery-ui
  3. //= require jquery_ujs
  4. // require turbolinks
  5. //= require bootstrap
  6. //= require jquery.raty
  7. //= require private_pub
  8. //= require_tree .

并且模式显示在接收方(这是好的).

现在问题是我可以在我的firefox控制台/ html中看到两个具有相同id的模态.关闭/提交模态的按钮也停止工作.我的send_invitation.js.erb文件中的console.log也显示了两次console.log结果,所以很明显js.erb文件正在执行两次.但值得注意的是,ajax只运行了一次.我浪费了几个小时就发现它只发现This link对我来说也不起作用,因为当我删除jquery.js或jquery_ujs.js时它给了我错误

解决方法

我找不到解决方案,但我认为值得某人告知实际问题.
在我的情况下,问题是我在同一页面上制作了两个频道,这就是为什么它与瘦服务器进行两次握手的原因.

注意但是在一般情况下,如果我们将js文件包含两次,也会发生这种情况.

猜你在找的JavaScript相关文章