我正在尝试将函数放入 CoffeeScript 中的 Assets 管道中
如果我使用纯 JavaScript,
mymodel.js
function restrictPlayback(event) {
// Trying to stop the player if it goes above 1 second
if (event.currentTime > 10) {
event.pause();
event.currentTime = 0
}
}
编译良好并且函数有效。
如果我输入以下内容:
mymodel.js.coffee
restrictPlayback = (event) ->
# Trying to stop the player if it goes above 10 seconds
if event.currentTime > 10
event.pause()
event.currentTime = 0
我收到以下错误
Uncaught ReferenceError: restrictPlayback is not defined
我做错了什么?
最佳答案
我怀疑您正在定义该函数,然后期望它具有全局作用域(即可以从任何地方使用)。
默认情况下,Coffeescript 将编译后的代码包装到 Immediately Invoked Function Expressions (IIFEs) 中因此您声明的函数仅在 Coffeescript 文件的范围内有效。
您可以在编译时使用 -b 标志让 Coffeescript 停止在 IIFE 中进行包装,尽管学习以 Coffeescript 的方式做事是更好的做法。
关于javascript - Coffeescript 无法在 Assets 管道中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637775/