Quiero hacer un parcial en mi archivo js.erb para poder usar el código HTML generado en mi Javascript. Aquí hay un código para servir como un ejemplo.Representación parcial dentro de js.erb. ¿Es posible obtener una cadena sin procesar para poder quitar el espacio en blanco?
create.js.erb
$(function(){
var html = "<%= render(:partial => `pretty_box`) %>";
$("#container").prepend(html);
});
_pretty_box.html.haml
.pretty_box_container
.title
Something Pretty
Cuando se representa create.js.erb, me sale el siguiente:
$(function(){
var html = "<div class="pretty_box_container>
<div class="title">
Something Pretty
</div>
</div>";
$("#container").prepend(html);
});
Como era de esperar, esto rompe mi javascript Necesito quitar los espacios en blanco del resultado de renderizar el parcial. El problema es que el valor de retorno de render
es un objeto ActiveSupport::SafeBuffer
, que anula todos los métodos "inseguros" (consulte UNSAFE_STRING_METHODS), incluido strip
. Llamando al render(:partial =>
pretty_box ).strip
HTML-codifica toda la cadena.
He intentado todo tipo de combinaciones utilizando los métodos html_safe
o to_s
. No funcionan porque devuelven self
, y usar raw
tampoco funciona porque llama al to_s.html.safe
.
Sé que puedo agregar >
y <
caracteres a mi HAML, pero no quiero hacer eso para cada línea de cada parcial.
Gracias mischa. Voy a probar esto esta noche. – John
Funcionado. ¡Gracias! – John
De nada. Me alegro de que funcionó. – Mischa