【问题标题】:How do I properly put embedded ruby code in to JavaScript?如何正确地将嵌入的 ruby​​ 代码放入 JavaScript?
【发布时间】:2012-05-18 11:37:06
【问题描述】:

我正在尝试将 Ruby 代码的输出嵌入到 JavaScript 中:

var stuff= "<% Representative.get('http://0.0.0.0:4568/') %>";

嵌入部分自己工作,显示如下结果:

{ "name":"John Johnson", "street":"Oslo West 555", "age":33, "phone":"555 1234567"} 

上面的行是 EXACT PAGE SOURCE;但它在本地运行,所以我无法向您显示该页面。

在变量中时,我尝试将其发送到我的应用程序:

document.getElementById("X_Axis").value=stuff.name;

通过输入:

<input type="text" id="X_Axis" />

我每次都会得到一个undefined 值。

我尝试在 JavaScript 中对值进行硬编码,它工作正常,当嵌入的 Ruby 放入 JavaScript 变量时,它总是给我undefined 值。

【问题讨论】:

  • 在调用函数时 X_Axis 是否可用于 DOM?
  • 是的,我已经尝试在将 erb 传输到 js 的位置对其进行硬编码,并且可以正常工作。我的钱在嵌入部分的 qoutation 标记上,同时将其转移到 js,但我必须找出如何使用正则表达式删除 qoutation 标记。虽然,转移时没有它们将无法工作

标签: javascript ruby-on-rails ruby json sinatra


【解决方案1】:

您不应该在 ERB 代码周围加上引号,否则它会将结果放在字符串中,而不是将其作为哈希/JSON 对象分配给 stuff。删除它们,它应该可以工作。 (另外,&lt;% 应该是 &lt;%=)。

var stuff = <%= Representative.get('http://0.0.0.0:4568/') %>;

【讨论】:

  • 我已经尝试过这样(现在又一次),然后我的代码停止工作。也许以某种方式将其从字符串传输到 json 对象?
  • 另外,&lt;%= 也不起作用。而且我不明白为什么要这样写,我不希望它在屏幕上,只是在变量中。
  • 是的,但&lt;%= 并不意味着“将其放在屏幕上”,而是意味着“将其写入 HTML,这是您想要的,以便将其放在 @987654327 旁边@. 您能否更新您的问题,显示使用当前代码生成的确切页面源代码?
  • { "name":"John Johnson", "street":"Oslo West 555", "age":33, "phone":"555 1234567"} 是确切的页面来源。不过我在本地有,所以我不能给你看。
  • 对不起迪伦!我刚刚得到了你的建议,你第一次是对的,删除了 qoutations 并将&lt;%= 工作。谢谢一百万:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
相关资源
最近更新 更多