Coffescript 如何访问其他资产的功能?

发布于 2024-11-09 23:14:49 字数 187 浏览 0 评论 0原文

所以我有两个控制器,hotelsvideos。我希望 hotels.js.coffee 能够访问 videos.js.coffee 中创建的函数,但出现“未定义”错误。

我是 CoffeeScript 的新手,所以任何线索将不胜感激。

So I have two controllers, hotels and videos. I want the hotels.js.coffee to be able to access functions created in videos.js.coffee but I get a "is not defined" error.

I'm new to CoffeeScript so any clues would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

迷荒 2024-11-16 23:14:49

CoffeeScript 会将你的咖啡编译为 JS,封装在一个自执行函数中,其作用域为窗口 (function{}).call(this);

因此,在videos.js.coffee中,您可以编写如下内容:

    @getVideo: (id) ->

getVideo函数将绑定到window对象。

CoffeeScript will compile your coffee to JS wrapped in a self-executing function with the scope of the window (function{}).call(this);

So in videos.js.coffee you can write something like:

    @getVideo: (id) ->

and the getVideo function will be bound to the window object.

装纯掩盖桑 2024-11-16 23:14:49

CoffeScript 在匿名函数内运行,因此在同一文件中声明的函数不会导出为全局函数。

尝试这样的方法来声明全局函数:

window.myFunction = ->
    //some code

CoffeScript runs inside an anonymous function, so declared funcitons in the same file, aren't exported as global functions.

Try something like this to declare global functions:

window.myFunction = ->
    //some code
2024-11-16 23:14:49

在编译期间,CoffeeScript 将您的代码包装在匿名函数中并应用它。您必须以适合您的环境的预期方式导出公共接口。

(exports || window).publicMethod = (foo, bar) -> foo + bar

然后,您需要在 Node.js 中使用 require() 并通过引用浏览器中的 window 对象。

在浏览器中还有其他方法可以执行此操作。查看 RequireJS

During compilation, CoffeeScript wraps your code in an anonymous function and applies it. You have to export your public interface in the expected manner for your environment.

(exports || window).publicMethod = (foo, bar) -> foo + bar

You then require using require() in node.js and by referencing the window object in the browser.

There are other ways to do this in the browser. Look into RequireJS.

终难愈 2024-11-16 23:14:49

事实上,您可以使用顶级窗口变量,或通过 CommonJS 提供的导出对象。请注意,您还可以授予对完整控制器的访问权限,而不仅仅是功能。

请参阅 http:// /jashkenas.github.com/coffee-script/

Indeed you can use either the top-level window variable, or the exports object provide through CommonJS. Please note, you can also give access to complete controllers instead of just functions.

See the sections 'Lexical Scoping and Variable Safety' and '"text/coffeescript" Script Tags' at http://jashkenas.github.com/coffee-script/.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文