我正在使用Nprogress在我的Rails应用上显示ajax请求的加载状态。我已经完成了使用所有普通的ajax调用,但我现在遇到了rails远程表单的问题。
我现在正在使用这种在大多数情况下效果很好的绑定。
$(document).bind('ajax:before', function(){
NProgress.start();
}).bind('ajax:complete', function () {
NProgress.done();
}).bind('ajax:success', function () {
NProgress.done();
}).bind('ajax:error', function () {
NProgress.done();
});
我的问题是我的js响应正在替换表单以显示错误,这就是导致进度条永远不会完成的原因。
我的问题是,是否有任何其他方式来监听远程调用是否完成,或者是否有办法在每个远程js响应上运行一种回调。也许js响应的某种布局?
我的js.erb回复看起来像这样
$('.add-form').html("<%= j(render partial: 'partial/path') %>");
答案 0 :(得分:5)
Whaat !!!我刚刚用布局解决了我的问题!!!! :D有意义的是,它们的工作方式与html布局相同,但我不确定它是否会起作用!
我刚刚创建了一个名为application.js.erb
的布局,其中包含以下内容:
<%= yield %>
NProgress.done();
它只是有效!我真的很高兴,因为这正是我所需要的,一种后回调。
无需更改任何其他内容。