2017-09-24 151 views
1

你好,我有下面的例子,我想不出如何使它在html.haml中工作。Rails在HAML中使用數組+ + Coffeescript

實施例1(工作):

# In html.erb file 
<% @my_array = ['1, '2'] %> 

<script> 
    window.running_cycler = new MyAwesomeClass({ 
    custom_data: <%= raw @my_array %> 
    }); 
</script> 

實施例2(不工作)

# In html.haml file 
- @my_array = ['1', '2'] 

:javascript 
    window.running_cycler = new MyAwesomeClass({ 
    custom_data: "#{raw @my_array}" 
    # or 
    # custom_data: "#{@my_array}" 
    }) 

這是它引發瀏覽器誤差。 enter image description here 我如何使它在html.haml文件中工作?看起來生吃根本不起作用。 如果我不使用「生」,那麼它就會被轉換的格式爲:

"[&quot;1&quot;, &quot;8&quot;]" 

enter image description here

請幫助。謝謝!

回答

2

您可以使用單引號和raw

- @my_array = ['1', '2'] 

:javascript 
    window.running_cycler = { 'custom_data': '#{raw @my_array}' } 
    console.log(JSON.parse(window.running_cycler.custom_data).length) 
    // 2 
+0

您好,感謝您的回答。它適用於JSON.parse('#{raw @my_array}')。不過,我很困惑,我必須明確地調用JSON.pase,而Coffeescript應該這樣做。 –

+1

顯然,'window.running_cycler = {custom_data:#{raw @my_array}}'也在工作。 –