小编mor*_*oso的帖子

Turbolinks 5:从特定页面中的其他站点添加外部javascript文件

我正在使用turbolinks 5 beta 1,对于某些特定页面,我想加载外部javascript文件.

在我的示例中,我有一个联系人页面,我想通过加载谷歌地图api来显示地图.访问根页面时不应加载它,但稍后在单击指向联系人页面的链接后将其包含在内.

产生一个javascript脚本标签工作在Turbolinks 2.但似乎不再工作了.

有可能检查javascript是否已经加载,否则在需要时异步加载它.

像这样的东西:

loadScript = (src, callback) ->
  script = document.createElement("script")
  script.type = "text/javascript"
  script.onload = callback if callback
  document.getElementsByTagName("head")[0].appendChild(script)
  script.src = src

initialize = ->
  # init map here

load = ->
  if $('#gmap').size > 0
    if typeof(google) == 'function'
      initialize()
    else
      loadScript 'https://maps.googleapis.com/maps/api/js?&callback=initialize'

$(document).on 'turbolinks:load', -> load()
Run Code Online (Sandbox Code Playgroud)

这是解决这个问题的唯一方法还是有更简单的方法?

javascript ruby-on-rails turbolinks ruby-on-rails-5

9
推荐指数
1
解决办法
873
查看次数

在RubyMotion中解析字符串到时间

我尝试将时间的文本表示解析为ruby Time对象.

通常在ruby中,我会这样做:

require 'time'
Time.parse('2010-12-15T13:16:45Z')
# => 2010-12-15 13:16:45 UTC
Run Code Online (Sandbox Code Playgroud)

在RubyMotion中,我无法使用libs,并且Time.parse不可用:

(main)> require 'time'
=> #<RuntimeError: #require is not supported in RubyMotion>
(main)>
(main)> Time.parse
=> #<NoMethodError: undefined method `parse' for Time:Class>
Run Code Online (Sandbox Code Playgroud)

有没有办法要求ruby提供的时间库,而不必复制和重写整个代码,使其与RubyMotion兼容?

ruby rubymotion

4
推荐指数
2
解决办法
3649
查看次数