dan*_*des 4 ujs ruby-on-rails-4
我一直在与Rails 4和UJS进行斗争,并注意到Rails 4.1的行为(特别是rails-ujs)并不像我期望的那样.
当使用带有确认对话框的远程链接时,UJS驱动程序会在确认弹出窗口被批准之前发送XHR(使确认弹出窗口毫无意义).我本来希望Rails能够处理这些选项的组合,但是我必须编写自己的javascript来执行确认弹出并挂钩到"ajax:beforeSend"事件以防止请求过快触发.
这是我没有工作的东西(请求立即被激活,没有等待确认对话框返回true):
= link_to 'Ajax Button', app_path(resource), method: :delete,
remote: true, id: 'ajax_link', disable_with: 'Wait...',
confirm: 'Are you sure?'
Run Code Online (Sandbox Code Playgroud)
这就是我现在所做的工作:
= link_to 'Ajax Button', app_path(resource), method: :delete,
remote: true, id: 'ajax_link', disable_with: 'Wait...'
$ ->
$("a[data-remote]#ajax_link").on 'ajax:beforeSend', (xhr, settings) ->
return confirm("Are you sure?")
Run Code Online (Sandbox Code Playgroud)
只是我或不应该rails/jquery-ujs处理上述选项组合并等待确认弹出窗口?在过去,Rails 3和之前,远程链接/按钮在AJAX和远程请求时通常"正常工作",但Rails 4似乎使用AJAX需要更多的技巧,这是以前需要的.
还有其他人用Rails 4.1体验过这个吗?还有其他解决方案吗?
以下应该有效
= link_to 'Ajax Button', app_path(resource), method: :delete, remote: true, id: 'ajax_link', data: { disable_with: "Wait..." }, data: { confirm: 'Are you sure?' }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2616 次 |
| 最近记录: |