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

Coffeescript Coffescript如何从其他资产访问功能?,coffeescript,Coffeescript,所以我有两个控制器,酒店和视频。我希望hotels.js.coffee能够访问在videos.js.coffee中创建的函数,但我得到一个“未定义”错误 我不熟悉CoffeeScript,所以如果有任何线索,我将不胜感激。在编译过程中,CoffeeScript将您的代码封装在匿名函数中并应用它。您必须按照环境的预期方式导出公共接口 (exports || window).publicMethod = (foo, bar) -> foo + bar 然后需要在node.js中使用requi

所以我有两个控制器,
酒店
视频
。我希望
hotels.js.coffee
能够访问在
videos.js.coffee
中创建的函数,但我得到一个“未定义”错误


我不熟悉CoffeeScript,所以如果有任何线索,我将不胜感激。

在编译过程中,CoffeeScript将您的代码封装在匿名函数中并应用它。您必须按照环境的预期方式导出公共接口

(exports || window).publicMethod = (foo, bar) -> foo + bar
然后需要在node.js中使用
require()
,并在浏览器中引用
窗口
对象


在浏览器中还有其他方法可以完成此操作。查看。

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

尝试以下方法来声明全局函数:

window.myFunction = ->
    //some code

实际上,您可以使用顶级窗口变量,也可以使用通过CommonJS提供的exports对象。请注意,您还可以访问完整的控制器,而不仅仅是功能


请参阅“词法范围和变量安全性”和“文本/coffeescript”脚本标记”部分。

coffeescript将把您的咖啡编译成JS,包装在一个具有窗口范围的自动执行函数中(函数{})。调用(this)

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

    @getVideo: (id) ->

getVideo函数将绑定到window对象。

最近有几个问题。看到了,当我在类似的情况下尝试此操作时,我得到了一个javascript错误:missing:after property id[Break On this.hide_modal:function(modal_id){My function:
@hide_modal:(modal_id)->animate_top=Number($('.#'+modal_id).height()+70)current_top=$('#'+modal#id).css('top')$)('top'.+modal#id).animate top:'-'+animate_top+'px'500->$(此).css({'top':current_top,'visibility':'hidden'});$('discover modal bg').fadeOut()
抱歉:我已经继续使用相同的代码,只是用window.hide_modal替换了@hide_modal