替换多行值时,如何使车把保持缩进状态?

gzt*_*mas 4 html handlebars.js

考虑以下把手模板:

<div>
    {{content}}
</div>
Run Code Online (Sandbox Code Playgroud)

以及以下数据:

{
    content: 'foo\r\nbar'
}
Run Code Online (Sandbox Code Playgroud)

和所需的结果(我需要):

<div>
    foo
    bar
</div>
Run Code Online (Sandbox Code Playgroud)

但是,当使用数据编译车把模板时,我得到以下信息:

<div>
    foo
bar
</div>
Run Code Online (Sandbox Code Playgroud)

那么,如何在替换多行值时使车把保持缩进状态?当然,更改数据不是一种选择。

Tob*_*s J 7

compile参考

preventIndent:默认情况下,缩进的部分调用会导致整个部分的输出缩进相同的数量。当部分写入预标签时,这可能导致意外行为。将此选项设置为true将禁用自动缩进功能。

因此,可以得出以下结论:如果您能够设置模板以content使其部分呈现,例如:

<div>
    {{> ContentPartial}}
</div>
Run Code Online (Sandbox Code Playgroud)

然后在渲染之前,注册ContentPartialpartial

Handlebars.registerPartial('ContentPartial', '{{content}}')
Run Code Online (Sandbox Code Playgroud)

那么它将保留缩进。(实际上,当我自动缩进格式后我<textarea>不得不禁用它时,我才发现了此功能)。