Rails [新手] 警惕 rails-ujs 文档的坑

Lax · 2017年08月14日 · 最后由 run27017 回复于 2018年04月18日 · 3262 次阅读

Rails 5.1 之后将 jquery-ujs 的功能抽取出到 ActionView 里,新建的工程会默认加进去。 之前使用 jquery-ujs,就造成每次点击会触发执行两次 ajax。

考虑到以后会以集成的 rails-ujs 为主流,所以在自己项目里去掉 jquery-ujs, 又发现所有 ajax:[success|error|complete|... 回调不工作了。

翻了下源码,rails-ujs 的回调只提供一个 event 参数,ajax 的数据和状态需要自行去 event.detail 字段里获取。

翻了底朝天,看到这个文档在几个月前已经合并进去,还在等发布 😅 rails/rails#29442

我之前也遇到这个问题,所以就退回到 jquery-ujs 了。也遇到点击触发两次 ajax 的问题,但我已经去掉了 rails-ujs 了。这是我的 application.js 引用代码:

//= require turbolinks
//= require jquery3
//= require jquery_ujs
//= require popper
//= require bootstrap-sprockets
//= require app
//= require_self
//= require_tree .

可以看到已经没有 rails-ujs 了,但还是遇到点击触发两次 ajax 的问题。

另外,楼主,rails-ujs 和 jquery-ujs 的区别是什么?我在项目中用到了 bootstrap,bootstrap 需要 jquery,在使用 rails-ujs 的基础上,可以省略 jquery 的引用吗?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号