我使用Backbone模型作为Mustache模板的输入来生成HTML。
我有一个Backbone模型,其中包含许多属性,例如名称,描述和id。 description属性可以包含回车符,我想在模板中呈现时将其呈现为<br>
标记。
默认情况下,Mustache只是直接输出回车符,因此标记看起来很整洁,但渲染的结果没有中断。
我并不特别想在description属性中替换\ n \ n,因为该属性可以在别处使用(例如在alt或meta标签中)。
到目前为止,我唯一的想法是添加具有格式化文本的重复描述属性。
Mustache中是否没有将HTML换行符格式化为<br>
标记?
答案 0 :(得分:2)
小胡子的目的非常有限。如果在Mustache模板中需要任何特殊功能,可以使用JavaScript准备数据,以便Mustache的插值和循环可以处理它。在您的情况下,这意味着在EOL上拆分字符串以获取数组:
// Adjust the regex to suit your data, this one is pretty loose.
var lines = string.split(/[\r\n]+/)
.map(function(line) { return { line: line } });
然后在Mustache中遍历该数组:
{{#lines}}
{{line}}<br>
{{/lines}}
答案 1 :(得分:0)
mu太短了答案是对的。我只想补充一点,IE8(及更早版本)不支持.map功能。
我最终使用循环来实现与支持IE8所需的相同的效果:
var descriptionArray = description.split(/[\r\n]+/);
var descriptionLines = new Array();
for (var line = 0; line < descriptionArray.length; line++) {
descriptionLines.push({ Line: descriptionArray[line] });
}