我可以帮您翻译成中文:我可以在CoffeeScript文件中使用普通的JavaScript吗?

18

我正在尝试在我的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 Projects/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。如果这是真的,那么我只能删除.coffee扩展名,并确保Rails的魔力会起作用并加载文件,对吗?


当你尝试过它后发生了什么?但是,是的,JS != CS。 - Dave Newton
你有没有考虑至少阅读一下CoffeeScript的文档?(http://coffeescript.org/#embedded) - millimoose
1
只需删除“.coffee”扩展名即可。所有的“Rails magic”都将继续工作。 - georgebrock
@georgebrock 是的,但我发现它易于学习和有用。不管怎样,你能告诉我Rails开发人员使用SCSS和coffeescript是常见做法还是个人选择吗? - gotqn
2
这是个人选择的问题,但如果你要成为专业的Rails开发者,你并不总是在项目开始时做出选择,所以最终会用两者都用到。 - georgebrock
显示剩余6条评论
1个回答

26

来自 coffeescript.org 的文档:

希望你永远不需要使用它,但如果你需要在你的 CoffeeScript 中插入一些 JavaScript 片段,你可以使用反引号直接传递它。

所以是的,你可以在 CoffeeScript 中使用 JavaScript - 只需将其用反引号包围起来

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

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

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

然而,强烈建议您将代码转换为CoffeeScript。


17
最好将你的代码转换为CoffeeScript,然后再使用它。或者干脆不要使用它。 - millimoose
1
@millimoose 或者那个。似乎 OP 真正想要的是不使用 CS,但这是对他当前问题形式的回答。 - redhotvengeance
2
我同意@redhotvengeance的观点,我们并不总是想要为完成工作而学习另一种语言的负担。 - JamesB
1
我希望你能够放置这个链接:https://coffeescript-cookbook.github.io/chapters/syntax/embedding_javascript - mohghaderi
转义功能非常有用,特别是当您没有时间清理代码片段时。 - Cees Timmerman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接