【发布时间】:2012-11-01 07:53:40
【问题描述】:
我有一个最近从 3.1 升级的 Rails 3.2.8 应用程序,并且我已将所有原始 application.js 代码转换为 CoffeeScript。其中大部分工作正常。但是,我有一个面包屑函数,我在几个未找到的视图中调用它。目前,我只是发出警报以查看它是否正常工作:
product_breadcrumb = (attr) ->
alert attr
位于名为product_search.js.coffee 的文件中。它正在成功编译,最终看起来像这样:
(function() {
var product_breadcrumb;
product_breadcrumb = function(attr) {
return alert(attr);
};
}).call(this);
我想是的,我不知道。无论如何,在 Firebug 中我得到了:
ReferenceError: product_breadcrumb is not defined
请注意,这是在 Ajax 调用之后。我不知道为什么该功能不可用。毕竟这只是一个函数定义。它不应该仍然可用于 Ajax 调用中呈现的 HTML 吗?我不明白为什么找不到函数。
【问题讨论】:
-
如果你在控制台输入
product_breadcrumb或product_breadcrumb("foo"),它会返回一个值吗? -
另外,您粘贴的已编译 JS 中的括号似乎不匹配,这可能很重要,也可能不重要。附在
}).call中的括号是什么? -
感谢 Jason,剪切和粘贴错误。固定。
-
控制台问题呢?
-
@JasonSwett 这只是一个命名空间问题,这就是他收到引用错误的原因。
标签: ruby-on-rails-3 coffeescript ruby-on-rails-3.2