假设我有一段如下所示的文本:
First line\nSecond line\nThird line
我想将此文本(使用jQuery模板)显示在HAML中,如下所示:
%li ${TEXT}
不幸的是,我还没有找到任何好的方法让这些换行符实际显示为换行符。当按原样显示时,它们最终会被格式化(在实际网页上),如下所示:
First line Second line Third line
在JavaScript中执行标准
replace(/\n/g, "<br />")
时,格式化的结果(post HAML)变成:First line<br />Second line<br />Third line
换句话说,文本字符串
<br />
实际上显示给用户。我相信这个问题有一个简单的解决办法;我只是没有很快找到。
最佳答案
对于jQuery模板,应该使用{{html TEXT},而不是${TEXT},其中TEXT属性包含html。这将阻止jQuery模板引擎对字符串进行html编码。请在将其插入模板之前替换(/\n/g,“”)。