Arka uçta Raylar ve ön uçtaki javascript/omurga kullanan bir uygulama yazıyorum. bootstrap some rails models into my javascript'u deniyorum. Spesifik olarak, @courses
'un içeriğini window.courses
adında bir js değişkenine yüklemek istiyorum. Bir html.erb
dosyasında aşağıdaki var.Rails to_json çıktısında HTML varlıkları nasıl ele alınır?
<%= javascript_tag do %>
window.courses = JSON.parse('<%= @courses.to_json %>');
<% end %>
yerine, ben HTML entities içerir kod alıyorum, bu yüzden
<script type="text/javascript">
//<![CDATA[
window.courses = JSON.parse('[{"code":"myCourseCode", ...
//]]>
</script>
gibi, geçerli javascript içine bu işlemek için erb
önişlemci bekliyor ... ama değilim.
<script type="text/javascript">
//<![CDATA[
window.courses = JSON.parse('[{"code":"myCourseCode", ...
//]]>
</script>
Açıkçası, bunu ayrıştırmaya çalıştığımda javascript hataları alıyorum.
Geçerli javascript oluşturmak için bu HTML varlıklarıyla nasıl başa çıkabileceğimi bilen var mı? Bir seçeneğin unescape the entities on the client side olduğunu anlıyorum, ama bu bir döner çözüm gibi görünüyor. Rails'i unconcaping gerektirmeyen JSON üretmek için bir yol var mı?
Kullanarak deneyin <% = raw (@ courses.to_json)%> ' –
Parlak, teşekkürler! Bunu yapmanın basit bir yolu olmalı diye düşündüm. –
@dB 'kabul edilen cevabı güncellemeyi düşünür müsünüz? Bu çok güvensiz ve birçok siteler arası komut dosyası güvenlik açıklarının kaynağı olmuştur. – oreoshake