【问题标题】:Turbolinks load event never firing in brand new Rails 5.1 appTurbolinks 加载事件从未在全新的 Rails 5.1 应用程序中触发
【发布时间】:2017-11-25 07:58:43
【问题描述】:

由于某种原因,Turbolinks 没有在我的应用程序中触发加载事件,这是一个全新的、最近创建的应用程序。

我使用rails new(特别是rails new prueba -C -d postgresql --skip-coffee --no-api)创建了一个全新的Rails 5.1 应用程序(5.1.4)。此命令自动配置 Rails 以使用 Turbolinks,无需进一步手动配置。

然后我为模型创建了一个脚手架 (bin/rails g scaffold Thing name),只是为了有一些页面可以导航到。

最后,我创建了一个文件app/assets/javascripts/test.js,内容如下:

document.addEventListener("turbolinks.load", function() {
  console.log("Turbolinks loaded")
});

运行迁移后,我在开发中运行服务器 (bin/rails s),浏览(尝试使用 Chrome v62 和 Firefox v57),并检查开发人员工具控制台,但没有看到“Turbolinks 已加载”消息,我什么也没得到:

  • 当我访问/things时,控制台是空的
  • 如果我重新加载相同的页面,控制台仍然是空的
  • 如果我点击“New thing”链接,控制台仍然是空的
  • 如果在“New thing”页面中我点击“Back”链接,控制台仍然是空的

根据Turbolinks README

[...] turbolinks:load 事件,它在 初始页面加载,并在每次 Turbolinks 访问后再次加载。

因此,我希望每次都能在控制台中看到“Turbolinks 已加载”消息。

有什么想法吗?

【问题讨论】:

  • 你试过用turbolinks:load代替turbolinks.load吗?

标签: ruby-on-rails turbolinks


【解决方案1】:

根据您的代码,您大多错过了事件名称。你使用turbolinks.load,而实际上它是turbolinks:load。查看此网址了解更多详情——https://github.com/turbolinks/turbolinks#running-javascript-when-a-page-loads

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多