【发布时间】:2018-02-05 22:46:20
【问题描述】:
我在资产文件夹中,每个模型都有不同的咖啡脚本文件。但是每次我访问一个页面时它们都会执行,即使它来自不同的控制器。如果我继续 /insertion/new 我希望只执行 insert.coffee,而不是我的所有 .coffee 开始。如何一次启动一个?
这是我的inserts.coffee
$(document).on "turbolinks:load", ->
if ($('#insertion_book_search'))
console.log("found")
console.log($('#insertion_book_search').length)
console.log($('#insertion_book_title').length)
$('#insertion_books_subject').parent().hide()
那是我的 static_pages.coffee
$(document).on "turbolinks:load", ->
console.log("Mie cose")
$('.last_img').on 'load', ->
natHeight = $(this).get(0).naturalHeight
natWidth = $(this).get(0).naturalWidth
if (natWidth > natHeight)
$(this).css( 'width','100%')
else
$(this).css( 'height','100%')
我想要实现的是,当我使用插入控制器时,它只加载 insert.coffee,而当我使用静态页面控制器时,它只加载 static_pages.coffee。
据我了解,当我将// require_tree . 行添加到/app/assets/javascript/application.js 时,我所有的咖啡都加载到了我的所有视图中。
如果我删除了 require 树并尝试使用 添加它们,我需要一个 .js 文件而不是咖啡。可以加载咖啡文件吗?
【问题讨论】:
-
发布两个单独的咖啡脚本资产示例。我敢打赌你把他们绑在同一个赛事上,这就是他们都跑的原因。请记住,您可以将 coffeescript/js 放在不同的文件中,但它们都被编译成一个单独的文件。不同的文件名是为了帮助您组织脚本——它们不是命名空间。
标签: javascript ruby-on-rails ruby coffeescript