【发布时间】:2012-06-06 09:23:57
【问题描述】:
我有一个用于 Rails 模型的配套脚本文件,它使用我已经分解成十几个类的层次结构的代码,用于 jQuery/Bootstrap UI 代码之类的东西,分解不同类型对话框之间的相似性,以及很快。假设我在这里使用articles.js.coffee 作为“主页脚本”。
我可以定义 Coffeescript 类,将它们命名为 window.ourproject.OurUIDialog 之类的名称,并将它们保存在单独的每个类源文件中,例如 app/assets/javascripts/OurUIDialog.js.coffee。重新启动 Rails 服务器,该类可以被子类化,例如,window.ourproject.PostInfoDialog extends window.ourproject.OurUIDialog。只要PostInfoDialog 在articles.js.coffee 中(PostInfoDialog 的实例化所在),一切都很好。
但是,如果我将子类 (PostInfoDialog) 移出到单独的文件中,例如 PostInfoDialog.js.coffee,那么尝试在主文章脚本中对其进行任何操作都会产生
Uncaught TypeError: Cannot read property 'prototype' of undefined
再次:
- 这围绕着 Rails 模型的配套脚本文件,这里称为
articles.js.coffee; -
window.ourproject.OurUIDialog无论是在自己的文件中还是在articles.js.coffee中都会被拾取 -
window.ourproject.PostInfoDialog(扩展OurUIDialog)只能在它不在单独的文件中时使用,即使查看生成的 HTML 显示PostInfoDialog包含在所有文件中其他脚本文件。
我正在努力解决这个问题,但我已经没有太多可以开始的事情了。有什么想法吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 coffeescript