可用于 Rails 应用程序其余部分的 CoffeeScript/JavaScript 类和方法集

2023-11-23

我正在使用 Rails 3.2.9。当我将 CoffeeScript 代码添加到.js.coffee文件在/app/assets/javascripts目录中,我在所有网页中都得到了生成的 JavaScript。问题是所有 JavaScript 都包含在:

(function() {
  // my code
}).call(this);

因此,我定义的任何方法在我在其他文件中编写的任何其他 CoffeeScript 代码中都是不可见的。使用 Rails 编写一组可重用的 CoffeeScript 类和方法的正确方法是什么?


最简单的事情就是为所有类命名。如果您的应用程序称为“app”,则在发生其他任何事情之前在初始化代码中:

// Set up the namespace.
window.app = { }

然后在你所有的.coffee files:

class app.Pancakes
    #...

然后,您将拥有一个全局名称空间,并且可以通过该名称空间引用所有内容:

pancakes = new app.Pancakes

对于简单的函数也类似:

app.where_is = (pancakes, house) -> ...

# And elsewhere...
x = app.where_is(...)

有多种方法可以设置和部分隐藏命名空间,但它们都是上述方法的变体,简单的命名空间可以很好地与 Rails 资产管道配合使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可用于 Rails 应用程序其余部分的 CoffeeScript/JavaScript 类和方法集 的相关文章