2012-07-13 26 views
23

在我的CoffeeScript文件,clients.js.coffeeCoffeeScript的功能/资产/ JavaScript的没有发现

myFunction = (variable) -> 

我的CoffeeScript在app/assets/javascript创建的函数。但是当我尝试调用该函数时,控制台向我显示一个错误,指出找不到函数。

我检查网页的源和它表明加载脚本:

<script src="/assets/clients.js?body=1" type="text/javascript"></script> 

这是发现脚本源里面:

(function() { 
    var myFunction; 

    myFunction = function(variable) {} 
}).call(this); 

任何想法,我缺少什么?我应该怎么做才能调用这个函数?

+0

您已经在匿名函数作用域中创建了一个函数。所以它不可见外 – zerkms 2012-07-13 04:21:04

+0

可能重复[为什么发生在我的CoffeeScript?](http://stackoverflow.com/questions/6481986/why-is-this-happening-to-my-coffeescript) – 2012-07-13 04:24:17

+0

我如何解决它在轨道?谢谢 – revolver 2012-07-13 04:31:19

回答

53

为了使从外部访问,所有你需要做的是在前面加一个“@”。 这会将函数附加到窗口对象。

@myFunction = (variable) -> 
+1

节省了我的时间。谢谢 – Uzair 2015-10-09 17:50:25

5

将其绑定到窗口

myFunction = (variable) -> 
    alert('zzzzzzzz') 

window.myFunction = myFunction 
+0

另外这里是一个截屏视频,可能会有帮助 - http://house9.blogspot.com/2011/05/rails-31-javascript-execution.html – house9 2012-07-13 04:35:59