【问题标题】:[Rails 5][Gem select 2] failed in loading js after back button[Rails 5][Gem select 2] 后退按钮后加载 js 失败
【发布时间】:2017-02-08 06:55:53
【问题描述】:

我正在使用 select2 和 ransack gem 进行多次搜索,但我遇到了一个大问题。

我的js文件:search.js

$(document).on("turbolinks:load", function () {
  $("#q_city_matches_any").select2({
    placeholder: I18n.t("js.city")
  });
});

我的苗条:index.html.slim

p.form-group= f.select :city_matches_any, @cities, {}, {class: "form-control", multiple: true}

application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap-sprockets
//= require turbolinks
//= require select2
//= require i18n
//= require i18n.js
//= require i18n/translations
//= require_tree .

正常情况下没问题,但是当我从索引页面移动到其他页面然后单击浏览器的按钮返回到索引页面时会出现问题。

正常情况:https://gyazo.com/9ea59e58e5271cd27ff716e548f51f17

问题:https://gyazo.com/3d8826be1b4f028760618e83e8d7b9cf

感谢您的支持!

【问题讨论】:

  • 关闭 Turbolinks 缓存并检查是否有帮助:<meta name="turbolinks-cache-control" content="no-cache">
  • 谢谢!确实有效,但是性能比以前低了很多。
  • 是的。你不需要继续使用这个临时解决方案'。现在您知道在哪里寻找解决方案了。我不知道 Turbolinks 缓存是如何工作的。也许你会找到一些事件after-cache-fetch,然后就可以重新初始化你的小部件。
  • @Mkay1 非常感谢!我解决了我的问题。

标签: javascript jquery ruby-on-rails select2-rails


【解决方案1】:

我解决了我的问题

$(document).on("turbolinks:before-cache", function(){
  $("#q_city_matches_any").select2("destroy");
});

参考:Select2 with ajax

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    相关资源
    最近更新 更多