让emberjs初学者工具包与coffeescript一起使用

让emberjs初学者工具包与coffeescript一起使用,coffeescript,ember.js,Coffeescript,Ember.js,我正试图让ember.js的初学者工具包示例直接与用coffeescript编写的应用程序一起工作(使用)。 我希望在开发环境中使用它,而不需要先将coffescript转换为javascript(手动或使用jitter等工具) 基本上我只是换了线 <script src="js/app.js"></script> 用台词 <script src="js/libs/coffee-script-1.3.3.min.js"></script> &

我正试图让ember.js的初学者工具包示例直接与用coffeescript编写的应用程序一起工作(使用)。 我希望在开发环境中使用它,而不需要先将coffescript转换为javascript(手动或使用jitter等工具)

基本上我只是换了线

<script src="js/app.js"></script>

用台词

<script src="js/libs/coffee-script-1.3.3.min.js"></script>
<script type="text/coffeescript" src="coffee/app.coffee"></script>

在index.html中

我所做的所有更改都可以在github上的fork中找到

coffescript本身似乎很好,因为当我首先将其转换为javascript时,starter kit应用程序可以使用此javascript。但是当我直接使用coffeescript时,它会在ember-0.9.8.1.js的第45行抛出错误“断言失败:无法在路径'App.MyView'中找到视图”。coffee-script.js本身似乎也能正常工作(参见demo.html)。因此,它必须是ember.js和coffee-script.js之间的冲突

但是我找不到这个错误。有人能告诉我正确的方向吗?

来自coffeescript.org

关于CoffeeScript的常见警告适用于您的内联脚本 在闭包包装器中运行,因此如果要公开全局 变量或函数,将它们附加到窗口对象

您的咖啡脚本应该如下所示:

<script type="text/coffeescript">
    window.App = App = Em.Application.create()

    App.MyView = Em.View.extend(
      mouseDown: -> window.alert "hello world!"
    )​
</script>

window.App=App=Em.Application.create()
App.MyView=Em.View.extend(
mouseDown:->window.alert“你好,世界!”
)​

请参阅以获取小提琴

您的小提琴可以使用,但在我的独立版本中仍然无法使用。我不知道coffeescript是如何在jsfiddle上转换为javascript的,因此我无法在jsfiddle之外复制它。您是否尝试过将coffeescript放在标记中而不是单独的文件中?因为我认为coffeescript无法加载外部资源。啊,这确实是个问题。谢谢嗯,我最后一句话可能说得太快了。执行外部*.coffee脚本(至少在不存在任何emberjs的情况下)。查看my github repo中的demo.html。window.App=App只是解决方案的一小部分。问题似乎是,咖啡脚本的编译可能在错误的时间执行。因此,脚本可能不会按照定义的顺序运行。有关详细信息,请参阅coffeescript问题:在上次提交中,我添加了require.js来处理脚本加载,并为require.js添加了一个coffeescript插件来解决问题。