Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript rails链接到:远程_Javascript_Ruby On Rails_Ajax_Link To - Fatal编程技术网

Javascript rails链接到:远程

Javascript rails链接到:远程,javascript,ruby-on-rails,ajax,link-to,Javascript,Ruby On Rails,Ajax,Link To,我有以下资料: <%= link_to my_path, method: :delete, confirm: 'Delete?', class: 'link-delete', 'data-message' => 'Are you sure?', 'data-severity' => 'danger', :remote => true do %> <i class="icon-trash"></i> <% end %> 但不确

我有以下资料:

<%= link_to my_path, method: :delete, confirm: 'Delete?', class: 'link-delete', 'data-message' => 'Are you sure?', 'data-severity' => 'danger', :remote => true do %>
  <i class="icon-trash"></i>
<% end %>
但不确定在使用“:remote=>true”时如何组合这两者

有什么建议吗


感谢您的帮助

您不需要将两者结合起来。只需使用format.js调用javascript即可

在控制器中:

控制器

 def my_method
     #code here
     respond_to do |format|
      format.js  {}
     end
    end
my_method.html.erb

<div id = "link-delete"></div>
$("#link-delete").html("<%= escape_javascript(render(:partial => "text_message"))%>");
<p>Loading...</p>

my_method.js.erb

<div id = "link-delete"></div>
$("#link-delete").html("<%= escape_javascript(render(:partial => "text_message"))%>");
<p>Loading...</p>
$(“#link delete”).html(“文本消息”)%>;
\u text\u message.html.erb

<div id = "link-delete"></div>
$("#link-delete").html("<%= escape_javascript(render(:partial => "text_message"))%>");
<p>Loading...</p>
正在加载


您可以像这样绑定到ajax调用:

<%= link_to my_path, method: :delete, confirm: 'Delete?', class: 'link-delete', 'data-message' => 'Are you sure?', 'data-severity' => 'danger', :remote => true do %>
  <i class="icon-trash"></i>
<% end %>

$('.link-delete').bind('ajax:beforeSend', function() {
  $('#mySpinner').show();
});

$('.link-delete').bind('ajax:complete', function() {
  $('#mySpinner').hide();
});
“您确定吗?”,“数据严重性”=>“危险性”,:remote=>true do%>
$('.link delete').bind('ajax:beforeSend',function(){
$('#mySpinner').show();
});
$('.link delete').bind('ajax:complete',function(){
$('#mySpinner').hide();
});

$(“#链接删除”).html(“#文本消息”))%>”
可以缩短为
$(“#link delete”).html(“”):remote=>true
,它将在单击时调用ajax。基本上,“加载…”消息应该在调用my controller中的操作之前显示。问题是,使用Bootstrap模式,我似乎失去了对调用过程的控制。这可能就是您所寻找的:github.com/rails/jquery-ujs/wiki/ajaxi我也在尝试做同样的事情……但不知怎的,
ajax:complete
并没有被解雇。只有发送前的
有效。在我的案例中,我使用GET。@RahulDess您的服务器是否正在生成响应?我能想象不触发完整回调的唯一原因是请求永远不会完成。请求成功完成。但值得注意的是,我通过控制器中的JavaScript呈现了部分。thtat是否改变了什么?@RahulDess如果控制器返回替换链接(或包含链接的内容)的JavaScript,那么如果未触发
ajax:complete
,则会有意义,因为原始链接不再存在于DOM中,事件将从中传播。(在旋转器案例中,这可能不是问题,因为旋转器也可能被吹走。)