Note: Ceci est un cas d'utilisation très étrange et unique alors je m'excuse à l'avance si elle semble un peu ass-backward. J'ai un fichier haml content.haml
et un fichier café-message main.coffee
. Je souhaite obtenir le code HTML résultant du rendu de content.haml en une variable dans le fichier café/Javascript résultant.Mettre HTML en javascript en utilisant Ruby
Le résultat final doit être un fichier javascript rendu au navigateur.
Disons qu'ils ressemblent à ceci:
# content.haml
.container
.some_content
blah blah blah
-
# main.coffee
html_content = ???
do_something_with_html_content(html_content)
Je sais, cela semble ridicule, 'utiliser des modèles', 'récupérer le code HTML via ajax', etc. Dans ce cas, Cependant, ce n'est pas possible, tout doit être servi via un fichier JS et je ne peux pas récupérer d'autres ressources du serveur. Bizarre, je sais.
courte de reconstruction manuellement le haml dans le fichier coffeescript en se joignant à un tableau de chaînes comme ceci:
html_content = [
'<div class"container">',
'<div class"some_content">',
'blah blah blah',
'</div>',
'</div>',
]
Je ne suis pas sûr que la meilleure façon de le faire.
Une autre façon je pensais de était de mettre quelque chose comme ça dans le fichier café:
html_content = '###CONTENT###'
render ensuite le haml html en rubis, rendent les coffeescript à js puis remplacer ###CONTENT###
avec le code html rendu avant servir au client. Cependant le html est une chaîne multi-ligne donc il détruit complètement le javascript.
Je suis convaincu qu'il doit y avoir une autre façon sympa de rendre le haml en html dans une variable telle qu'elle forme un javascript valide, mais mon cerveau est devenu vide.
Pouvez-vous mettre votre code café dans HAML ou doit-il rester séparé dans un fichier différent? –
Peu importe tant que le résultat est un fichier JS rendu au client. Je n'avais pas pensé à l'inverse, mais je ne sais pas comment ça marcherait? –