我有shared.js.coffee
Shared =
shared_method: (msg) ->
alert(msg)
我有test.js.coffee
Shared.shared_method("this doesn't work")
然后我首先按照https://stackoverflow.com/a/20563242/656510的说明将共享代码加载到application.js中
//= require ./shared
//= require_tree .
但是,它在开发中不起作用,我得到:未捕获的ReferenceError:未定义共享
当我查看JS时,它是作为单独的文件提供的,而不是像在生产中那样被编译为application.js。
正如我认为可能与Asset Pipeline配置有关,我创建了一个干净的Rails 4.1应用程序来演示该问题。
https://github.com/itinsley/asset_pipeline_weirdness
帮助极大的赞赏。
您需要使用全局名称空间:
@Shared =
shared_method: (msg) ->
alert(msg)
如果需要,可以为应用程序使用名称空间:
@myApp ||= {}
myApp.Shared =
shared_method: (msg) ->
alert(msg)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句