我可以在 CoffeeScript 文件中使用普通的 JavaScript 吗?

Posted

技术标签:

【中文标题】我可以在 CoffeeScript 文件中使用普通的 JavaScript 吗?【英文标题】:Can I use ordinary JavaScript in CoffeeScript file? 【发布时间】:2012-10-27 21:35:42 【问题描述】:

我正在尝试在我的 Ruby on Rails 应用程序中添加一些 javascript 代码。我已经为我的资产中的每个视图创建了一些 js.coffee 文件。由于我对 CoffeeScript 不熟悉,所以我只是在文件中传递了一些普通的 JavaScript/jQuery 行,例如:

if ($('#cart').length == 1)  $('#cart').hide("blind", direction: "vertical" , 1000); 

$('#cart tr').not('.total_line').remove();

但是抛出了以下错误:

错误:第 1 行的解析错误:意外的“POST_IF”(在 /home/gotqn/Aptana 项目/depot/app/assets/javascripts/carts.js.coffee)

来源指向

显示 /home/gotqn/Aptana Projects/depot/app/views/layouts/application.html.erb 其中第 6 行 提出:

在第 6 行的这个文件中,我得到了:

<%= javascript_include_tag "application" %>

我是 Ruby on Rails 的新手,但我想正在发生的事情是我无法在 CoffeeScript 中编写简单的 JavaScript。如果这是真的,我是否可以只删除 .coffe 扩展名并确保 Rails 魔法能够工作并加载文件?

【问题讨论】:

你尝试的时候发生了什么?但是,是的,JS != CS。 您是否考虑过使用 CoffeeScript 至少 reading the docs? 或者尝试将.coffee文件重命名为.js,这可能会禁用自动处理。 只需删除 .coffee 扩展名。所有的“Rails 魔法”都将继续发挥作用。 这是个人选择的问题,但如果您要成为一名专业的 Rails 开发人员,您并不总是在项目开始时做出选择,因此您最终会使用两者。 【参考方案1】:

来自coffeescript.org 上的文档:

希望您永远不需要使用它,但如果您需要在 CoffeeScript 中散布 JavaScript 的 sn-ps,您可以使用反引号直接传递它。

是的,你可以在 CoffeeScript 中使用 JavaScript - just surround it in backticks:

`function greet(name) 
return "Hello "+name;
`

# Back to CoffeeScript
greet "Coffee"
# => "Hello Coffee"

hello = `function (name) 
return "Hello "+name
`
hello "Coffee"
# => "Hello Coffee"

不过,强烈建议您将代码转换为 CoffeeScript。

【讨论】:

“不过,强烈建议您将代码转换为 CoffeeScript。” - 或者,你知道,根本不使用它。 @millimoose 或者那个。似乎 OP 真正想要的是不使用 CS,但这是他当前问题形式的答案。 同意@redhotvengeance,我们并不总是希望通过学习另一种语言来完成工作。 我希望你把这个链接:我希望你能把这个链接:coffeescript-cookbook.github.io/chapters/syntax/… 转义功能在您没有时间清理 sn-p 时很有用。

以上是关于我可以在 CoffeeScript 文件中使用普通的 JavaScript 吗?的主要内容,如果未能解决你的问题,请参考以下文章

CoffeeScript中对于在NetBeans 8.0插件:设置目标文件夹JS编译

我可以在 CoffeeScript 中编写 npm 包吗?

如何使用 CoffeeScript 而不是 JSON?对于配置文件等

我可以在 render.js 上执行的视图中使用 CoffeeScript 吗?

在视图中包含带有 ERB 的 Coffeescript 文件

Rails - 从 JavaScript 调用 CoffeeScript