0
我有一個erb模板index.html.erb
。這將呈現一個html頁面。然而,這個頁面也上有一個圖表,它期望一個JavaScript對象字面加載圖表:在html erb模板中發送有效的json to javascript
data: [
{x: 'Resolved', y: 0 },
{x: 'Unresolved', y: 0 }
]
爲了將數據傳遞到在JavaScript中index.html.erb
,我有一個腳本標記,看起來像這樣:
<script>
$(document).ready(function(){
var data = "<%= @chart_manager.bar %>"
console.log(data);
})
</script>
chart_manager的bar
方法只是返回JSON:
def bar
data = []
data << { x: 'Open', y: tasks.open}
data << { x: 'Closed', y: tasks.closed }
data.to_json.html_safe
end
然而,當網頁加載完畢後,我得到了CHRO錯誤我:
Uncaught SyntaxError: Unexpected identifier
和瀏覽器顯示的數據看起來像這樣:
var data = "[{"x":"Unresolved","y":0},{"x":"Resolved","y":0}]"
我如何發送正確的json的JavaScript的HTML ERB模板內?
刪除多餘的引號。 '「<%= @ chart_manager.bar%>」'變成'<%= @ chart_manager.bar%>'。然後你會立即獲得你的數據。如果你真的需要它作爲一個字符串而不是一個數組,你可以用單引號''<%= @ chart_manager.bar%>''來包裝它,或者將其'JSON.stringify(data)'字符串化。 –