Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 更换多行数值时,如何使把手保持缩进?_Html_Handlebars.js - Fatal编程技术网

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}}')