0

我有一个最近从 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 吗?我不明白为什么找不到该功能。

4

1 回答 1

2

这需要在全局范围内,然后您需要以这种方式调用它。

你应该写:

root = exports ? this

并命名你的功能

root.product_breadcrumb

然后您可以按预期在其他地方调用它。

请参阅此答案以获得更长的解释。

于 2012-11-12T21:09:39.650 回答