Html 更换多行数值时,如何使把手保持缩进?
考虑此把手模板:Html 更换多行数值时,如何使把手保持缩进?,html,handlebars.js,Html,Handlebars.js,考虑此把手模板: <div> {{content}} </div> 以及期望的结果(我需要的): 福 酒吧 但是,当使用数据编译车把模板时,我得到以下信息: <div> foo bar </div> 福 酒吧 那么,如何使车把在更换多行值时保持缩进? 当然,更改数据不是一个选项。这是不可能的。Handlebar对数据的嵌入位置一无所知。数据中有换行符,结果是换行符,在foo之后没有也没有地方可以得到制表符(4个空格),只
<div>
{{content}}
</div>
以及期望的结果(我需要的):
福
酒吧
但是,当使用数据编译车把模板时,我得到以下信息:
<div>
foo
bar
</div>
福
酒吧
那么,如何使车把在更换多行值时保持缩进?
当然,更改数据不是一个选项。这是不可能的。Handlebar对数据的嵌入位置一无所知。数据中有换行符,结果是换行符,在
foo
之后没有也没有地方可以得到制表符(4个空格),只有一个换行符
处理问题的方法之一是使用这样的助手,它以正确的方式知道缩进和过程传递参数
请参阅快速示例
助手:
Handlebars.registerHelper('indent', function (data, indent) {
var out = data.replace(/\n/g, '\n' + indent);
return new Handlebars.SafeString(out);
});
用作:
{{indent foo ' '}}
将生成具有指定缩进的多行输出。来自:
preventdindent
:默认情况下,缩进部分调用会导致整个部分的输出缩进相同的数量。这可能导致在部分写入预标记时出现意外行为。将此选项设置为true
将禁用自动缩进功能
因此,如果您能够设置模板,使内容
由部分内容呈现,则如下所示:
<div>
{{> ContentPartial}}
</div>
然后它将保留缩进。(当自动缩进在我的
中搞砸了格式,我不得不禁用它时,我发现了这个特性)
{{indent foo ' '}}
<div>
{{> ContentPartial}}
</div>
Handlebars.registerPartial('ContentPartial', '{{content}}')