我正在使用dust.js模板引擎。主模板包含部分内容,问题是dust.js 会 trim 包含的模板文件的每一行。
例如,主模板是:
<h1>{header}</h1>
{>dust_cnt /}
dust_cnt.dust 是:
<div>
This is
the content
</div>
我通过以下方式呈现响应: res.render('dust_template.dust', {header: '测试正常'});
输出中This is
和the content
之间没有空格的问题。所以输出看起来像:
TEST OK
This isthe content
我无法通过放置 {~n} 或其他分隔符来更改所有内容,并且我认为没有任何理由这样做。
关于http://linkedin.github.com/dustjs/我发现以下注释GH-166 -在dust.compile中添加了灰尘模板配置中的空白 trim (默认选项仍然为true)
。但找不到设置选项以避免 trim 的方法?
我怎样才能让dust.js按照我期望的方式渲染它(带有空格)?
提前谢谢您!
最佳答案
好的,我找到了解决方案:)。在深入研究源代码并检查 Dust 的 GitHub 上的问题后,我决定使用以下内容来防止模板 Node 的格式化:
dust.optimizers.format = function(ctx, node) { return node };
(也在 https://github.com/linkedin/dustjs/wiki/Dust-Tutorial#controlling-whitespace-suppression 上)
默认行为非常危险 - 正如 GitHub 上提到的那样,它可能会导致严重问题,例如:
<script>
//this will alert "test"
alert("this is test");
</script>
将呈现为:
<script>//this will alert "test" alert("this is test");</script>
关于javascript - dust.js 包含部分内容而不进行 trim ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15769861/