只是想知道是否有一种方法可以直接在rails link_to帮助器中使用turbolinks,快速的谷歌搜索没有发现任何注意事项,这是我试图无济于事的类型.
<%= link_to 'Giraffe', giraffe_path(@giraffe), :data-no-turbolink => 'true' %>
<%= link_to 'Giraffe', giraffe_path(@giraffe), :data { :no-turbolink => 'true'} %>
Run Code Online (Sandbox Code Playgroud)
我知道你可以在这样的常规链接中做到这一点
<a data-no-turbolink='true' href="/giraffe-130">Giraffe</a>
Run Code Online (Sandbox Code Playgroud)
现在我只是将属性包含在链接周围的元素上,例如lis或div.
提前致谢.
我主要是一个后端开发人员,并且在javascript相关的东西(以及该地方存在的所有框架的星系)方面都不是很熟练.我知道这很糟糕,但事实就是如此.
我对自己的问题变得疯狂,我可能会遗漏一些非常基本的东西.我做了一些研究(谷歌+堆栈溢出圣经),并没有发现任何类似于我的问题的案例.我想我只是不知道自己在做什么.让我解释.
我正在使用Rails 4进行小型(无用)项目,我尝试在coffeescript文件中编写一些javascript"代码".
显然,我写的coffeescript"代码"仅在我重新加载页面时或在POST
请求之后(例如,当您提交表单时).根据GET
请求,例如,在从页面到页面的导航期间,没有任何事情发生.
我尝试了一个非常简单的基本101级测试:在页面上显示一条警告信息(Hello!)(它首先包括一个日期选择器).
假设我有一个Article
模型,并且与ArticlesController
编辑/创建/删除数据相关联.我有以下文件:
app/assets/javascripts/application.js
app/assets/javascripts/articles.js.coffeee
app/controllers/articles_controller.rb
app/models/article.rb
app/views/articles/new.html.erb
app/views/articles/index.html.erb
etc.
Run Code Online (Sandbox Code Playgroud)
我只是在添加一行app/assets/javascripts/articles.js.coffee
:
alert "Hello!"
Run Code Online (Sandbox Code Playgroud)
如果我提交表单或重新加载页面,我会看到警告"你好!".如果我只是点击链接,例如编辑文章,则不会发生任何事情.
当我在两种情况下查看rails日志时,我有两种不同的场景:
在"它不工作"的情况下,当我做一个简单的get
请求(通过点击编辑链接)时,我在日志中有这个:
Started GET "/articles/1/edit" for 127.0.0.1 at 2013-09-17 14:35:28 -0400
Processing by ArticlesController#edit as HTML
Parameters: {"id"=>"1"}
Author Load (0.3ms) SELECT "authors".* FROM "authors" WHERE "authors"."remember_token" = 'ab6fa1c5257585de99459c60f24121c' LIMIT 1
Article Load (0.2ms) SELECT "articles".* FROM "articles" WHERE "articles"."author_id" = ? AND "articles"."id" = 1 …
Run Code Online (Sandbox Code Playgroud) 我有一个 Rails 5.1 应用程序,其中使用https://www.kryogenix.org/code/browser/sorttable/中的sortable.js库来对表进行一些简单的客户端排序。
我遇到一个问题,当页面首次加载时,表排序不起作用。(它根本没有响应。)如果您随后手动重新加载页面(cmd-R 或等效命令),那么它就会起作用。
经过一番搜索,我认为问题是由 Turbolinks 引起的。像这样的帖子,以及其他人建议如何修改 JS 代码来解决它: Rails javascript 仅在重新加载后才起作用
要引用该页面上的答案,您必须通过执行以下操作告诉 Turbolinks 进行加载:
document.addEventListener("turbolinks:load", function() {
my_func();
})
Run Code Online (Sandbox Code Playgroud)
然而,我不是 JS 专家,所以有点讨厌在 sortable.js 代码中过多地胡闹。我正在寻求以侵入性最小的方式解决问题的帮助。
我的Rails 4应用程序运行咖啡脚本来绘制谷歌地图.乍一看,它似乎不起作用.但是,当我点击浏览器刷新按钮时,地图会像冠军一样加载.这已经过测试,并且正在发生:
来自application.html.erb的标题
<head>
<!-- Boilerplate -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<%= stylesheet_link_tag "normalize.min.css" %>
<%= stylesheet_link_tag "main.css" %>
<%= javascript_include_tag "vendor/modernizr-2.6.2-respond-1.1.0.min.js" %>
<!-- Icon Font -->
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<!-- Google Maps API -->
<%= javascript_include_tag "https://maps.googleapis.com/maps/api/js?key=*********&sensor=true" %>
<!-- Rails -->
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
<link href='http://fonts.googleapis.com/css?family=Droid+Sans|Lobster' rel='stylesheet' type='text/css'>
</head>
Run Code Online (Sandbox Code Playgroud)
的application.js
// …
Run Code Online (Sandbox Code Playgroud)