gpt4 book ai didi

javascript - Rails 中的共享 JS(咖啡)

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:15:41 24 4
gpt4 key购买 nike

如果我想在 app/assets/javascript 下的不同文件之间共享一些 JavaScript 函数,组织目录结构的最佳方式是什么?

假设我有shared.js.coffee

sharedFunction = ->
'Hello '

现在,我怎样才能在其他地方使用它呢?像这里一样,在 welcome.js.coffee

welcome = (name) ->
sharedFunction() + name

如何让 shared.js.cofee 总是首先加载

我试图将它放在 application.js 的最开头,但它并没有改变任何东西。似乎 shared 文件加载时间过长,welcome 设法开始执行并注意到 sharedFunction 未定义。

最佳答案

我是这样做的:

  • 确保您在 application.js 中首先需要该文件,特别是在 require_tree
  • 之前
  • 导出函数(在我的例子中是一个类,所以它是命名空间的)

示例:(假设我们在同一级别有 application.js 和 shared.js.coffee)

application.js

//= require ./shared
//= require_tree .

shared.js.coffee

class MyNamespace
@mySharedFunc: () ->
doSomething()

root = exports ? this
root.MyNamespace = MyNamespace

您现在可以通过以这种方式引用它来在您的其他 coffeescript 文件中轻松访问该函数 MyNamespace.mySharedFunc()

附言

关于导出的神秘之处在这个 stackoverflow 问题中得到了很好的解释:How do I define global variables in CoffeeScript?

关于javascript - Rails 中的共享 JS(咖啡),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20561740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com