3

我正在尝试根据 Dust.js 指南打印换行符,在模板中,我在每个记录输出的末尾都有一个 {~n}

{#friends} {name}, {age}{~n}{/friends}

我编译了上面的模板并使用几个 JSON 记录进行渲染以生成“输出”对象。我正在使用 document.getElementById('divID').innerHTML 在基本 DIV 标记中动态替换“out”对象。尽管有 {~n},但问题是无法打印换行符。我也试过 {~r},但还是不走运。有什么想法吗?

4

3 回答 3

4

默认情况下,HTML 会将相邻的空格(包括换行符)折叠成一个空格。对于大多数元素,默认情况下a worda \n word(或a \r word或)之间没有区别。解决方案是:a \r\n word

  • 使用<br>元素添加中断
  • 将您的 div 上的样式设置为whitespace: pre;

或者,您可以使用列表(这对于您的用例可能更具语义,应该是首选)。

于 2012-04-10T18:42:53.667 回答
2

如果要呈现为 HTML,则需要使用<br>标签而不是换行符。

于 2012-04-10T18:42:43.190 回答
0

你应该使用:

dust.optimizers.format = function(ctx, node) { return node };

看看 https://github.com/linkedin/dustjs/wiki/Dust-Tutorial#controlling-whitespace-suppression

于 2013-04-17T08:25:35.493 回答