1

我正在尝试将数据从我的 haml 视图传递到 javascript。在我的欢迎控制器中,我有 index 方法。在我的 index.html.haml 视图文件中,我有以下内容:

:javascript
  window.putalert = "#{ "Data" }";

在我的welcome.js.coffee 我有:

jQuery ->
        alert putalert

但是,上述方法不起作用。我收到 Uncaught ReferenceError: putalert is not defined。

关于如何解决这个问题的任何建议?

chrome调试中的错误信息是

(function() {

  jQuery(function() {
    return alert(putalert);
Uncaught ReferenceError: putalert is not defined
  });

}).call(this);
4

2 回答 2

3

您可以使用 :javascript haml 标签注入 javascript。您可以使用 #{} 插入 Ruby。尝试这样的事情:

:javascript
  window.putalert = "#{ "Data" }";

如果你愿意,你甚至可以在你的视图中插入咖啡脚本(你必须为此使用倾斜):

:coffee
  @putalert = "#{ "Data" }"

这里是haml过滤器的参考: http ://haml.info/docs/yardoc/file.REFERENCE.html

于 2013-02-22T16:04:22.980 回答
0

一般来说,为 JavaScript 处理数据的一种非常好的方法是使用 HTML 标记上的数据属性。然后使用 jQuery 之类的东西,您可以提取该信息。比注入js要干净一点。

更多信息:http ://ejohn.org/blog/html-5-data-attributes/

于 2013-02-22T16:16:03.043 回答