如何在Mustache模板中的Backbone模型中格式化回车

时间:2013-11-14 17:54:53

标签: backbone.js mustache

我使用Backbone模型作为Mustache模板的输入来生成HTML。

我有一个Backbone模型,其中包含许多属性,例如名称,描述和id。 description属性可以包含回车符,我想在模板中呈现时将其呈现为<br>标记。

默认情况下,Mustache只是直接输出回车符,因此标​​记看起来很整洁,但渲染的结果没有中断。

我并不特别想在description属性中替换\ n \ n,因为该属性可以在别处使用(例如在alt或meta标签中)。

到目前为止,我唯一的想法是添加具有格式化文本的重复描述属性。

Mustache中是否没有将HTML换行符格式化为<br>标记?

2 个答案:

答案 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] });
}