注意:这是一个非常奇怪和独特的用例,所以如果它看起来有点落后,我提前道歉。
我有一个haml 文件content.haml
和一个coffeescript 文件main.coffee
。我希望以某种方式将渲染 content.haml 生成的 html 转换为 coffeescript/resulting javascript 中的变量。
最终结果应该是呈现给浏览器的 javascript 文件。
假设它们看起来像这样:
# content.haml
.container
.some_content
blah blah blah
-
# main.coffee
html_content = ???
do_something_with_html_content(html_content)
我知道,这听起来很荒谬,“使用模板”、“通过 ajax 获取 HTML”等。然而,在这种情况下,这是不可能的,一切都需要通过一个 JS 文件提供,我无法从服务器获取其他资源。很奇怪,我知道。
通过加入这样的字符串数组来手动重建咖啡脚本文件中的haml:
html_content = [
'<div class"container">',
'<div class"some_content">',
'blah blah blah',
'</div>',
'</div>',
]
我不确定这样做的最佳方法。
我想到的另一种方法是将这样的内容放入咖啡文件中:
html_content = '###CONTENT###'
然后在ruby中将haml渲染为html,将coffeescript渲染为js,然后###CONTENT###
在提供给客户端之前用渲染的html替换。但是 html 是一个多行字符串,因此它完全破坏了 javascript。
我确信一定有其他很好的方法可以将 haml 渲染为变量中的 html,以便它形成有效的 javascript,但我的大脑已经一片空白。