javascript - CoffeeScript:抑制 "ReferenceError"

标签 javascript jquery backbone.js coffeescript

目前正在处理this有关将 Backbone.js 与 Coffeescript 结合使用的教程。

利用以下index.html文件:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>CoffeeScript, Meet Backbone.js: Part N</title>
  <link rel="stylesheet" href="style.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
  <script type="text/javascript" src="./index.js"></script>

</head>
<body>
  <header>
    <h1>CoffeeScript, Meet Backbone.js: Part 1</h1>
  </header>
</body>


</html>

从 CDN 加载 Backbone、jQuery 等后加载一个 index.js 文件。希望在 script.coffee 文件中工作,我希望该文件自动编译到 index.html 加载的 script.js 文件中上面通过运行类似 coffee script.coffee -c -w.

问题是,当我尝试在以下 script.coffee 文件上运行上述命令时,出现了 ReferenceError:

jQuery ->

  class ListView extends Backbone.View

    el: $ 'body'

    initialize: ->

      _.bindAll @
      @render()

    render: ->
      $(@el).append '<ul><li>Hello, Backbone!</li></ul>'

  list_view = new ListView

例如:

ReferenceError: jQuery is not defined
...

因为很明显,jQuery 正在 index.html 文件中加载。

有没有办法抑制 CoffeeScript 编译器的错误报告,以便它只转换代码而不会出现错误?

最佳答案

选项必须位于文件之前,例如:

coffee -cw script.coffee

否则,它将尝试立即将 script.coffee 作为 Node.js 脚本运行,并向其传递选项 -c-w 。那不是你想要的;如果您希望 CoffeeScript 编译器获取选项,它必须位于文件名之前。

关于javascript - CoffeeScript:抑制 "ReferenceError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20296440/

相关文章:

javascript - 无法将 keydown 事件绑定(bind)到整个文档

javascript - 在悬停按钮上,可见性 :visible is not working

javascript - 实时交换 Html 数据表单

jquery - 表格行悬停背景色圆 Angular 效果

语句中的 Javascript 逻辑运算符 &&?

javascript - 对 Backbone 进行子类化。查看子类并保留事件

javascript - 通过模式复选框选择将一个文档添加到另一个文档

javascript - 如何构建带有循环的字符串?

Jquery HTML(), 克隆

javascript - 让 Marionette 布局像主干 View 一样渲染