0

HTML を生成するために、バックボーン モデルを Mustache テンプレートへの入力として使用しています。

名前、説明、ID などの多くの属性を持つバックボーン モデルがあります。description 属性にはキャリッジ リターンを含めることができます。これ<br>は、テンプレートでレンダリングされるときにタグとしてレンダリングする必要があります。

デフォルトでは、Mustache はキャリッジ リターンを直接出力するだけなので、マークアップはきれいに見えますが、レンダリングされた結果には切れ目はありません。

description 属性の \n\r は特に置き換えたくありません。そのプロパティは別の場所 (alt タグや meta タグなど) で使用できるからです。

私がこれまでに持っている唯一のアイデアは、書式設定されたテキストを持つ重複した説明属性を追加することです。

HTML改行を<br>タグとしてフォーマットするMustacheには何もありませんか?

4

2 に答える 2

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}}
于 2013-11-14T18:44:42.353 に答える
0

mu is too shortさんの答えは正解です。.map 関数は IE8 (およびそれ以前) ではサポートされていないことを追加したいだけです。

IE8 をサポートするために必要なのと同じ効果を得るために、ループを使用することになりました。

var descriptionArray = description.split(/[\r\n]+/);
var descriptionLines = new Array();
for (var line = 0; line < descriptionArray.length; line++) {
    descriptionLines.push({ Line: descriptionArray[line] });
}
于 2013-11-14T23:45:43.913 に答える