【发布时间】:2016-10-21 11:10:54
【问题描述】:
在 Rails 应用程序中,我在控制器中定义了一个对象,其中包含一个图标和一些值:
@data = "<i class='fa fa-circle fa-lg'></i><span>Speed: </span> #{b.speed.to_f} | Time: #{b.gps_date.try(:strftime, '%-m/%e %H:%M')}} <br />".html_safe.to_json
鉴于我这样解析它:
<script>
var data = JSON.parse('<%= raw @data.as_json %>');
</script>
但我收到以下错误:
Uncaught SyntaxError: missing ) after argument list
当我删除包含类单引号的图标代码时,我工作正常
<i class='fa fa-circle fa-lg'></i>
我该如何解决这个错误?
【问题讨论】:
-
不是解决方案,只是想知道,您为什么使用
to_json和as_json? -
如果我不使用这些方法,我会得到同样的错误。我实际上是在 JavaScript 中使用这个对象,所以尝试了
to_json,然后在 JS 中解析了 json -
这看起来不像一个对象。我猜您正在尝试构建一个 html 节点并将其传递给 JS,那么我猜只有
'<%= raw @data %>'应该可以工作。你试过了吗? -
你是对的。删除了所有 json 解析代码,只使用了原始 @data。有效。感谢您的帮助
-
我会把这个作为答案发布,如果你愿意,你可以接受。
标签: javascript ruby-on-rails json ruby