DoT.js website,将模板数据绑定或插值显示为
{{= it.modelFieldName }}
{{modelFieldName}}
除了在使用模板之前更换字符串之外,Dot.js如何使用{{modelFieldName}}
,删除= it.
并仍然可以使用?
原因:我想为我们的非程序员设计师创建一个模板指令。设计师使用Adobe Illustrator创建模板,使用InkScape转换为SVG,然后程序员在他们选择的模板框架中引用外部SVG模板(一些使用带有Dot的Knockout.js,一些使用Angular 2 +。)
答案 0 :(得分:1)
此配置的名称为delimiters
。
尝试按如下方式自定义dot
:
doT.templateSettings.interpolate = /\{\{([\s\S]+?)\}\}/g;
来源:http://olado.github.io/doT/index.html
API
doT.templateSettings - 默认编译设置
您可以通过更改编译设置来自定义doT。以下是默认设置:
doT.templateSettings = { evaluate: /\{\{([\s\S]+?)\}\}/g, interpolate: /\{\{=([\s\S]+?)\}\}/g, encode: /\{\{!([\s\S]+?)\}\}/g, use: /\{\{#([\s\S]+?)\}\}/g, define: /\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g, conditional: /\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g, iterate: /\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g, varname: 'it', strip: true, append: true, selfcontained: false };
如果您想使用自己的分隔符,可以根据自己的喜好修改`doT.templateSettings`中的RegEx。以下是默认分隔符列表:
{{ }} for evaluation {{= }} for interpolation {{! }} for interpolation with encoding {{# }} for compile-time evaluation/includes and partials {{## #}} for compile-time defines {{? }} for conditionals {{~ }} for array iteration
默认情况下,模板中的数据必须以' it'引用。要更改默认变量名称,请修改设置' varname'。例如,如果您设置' varname' to" foo,bar"您将能够传递2个数据实例,并通过foo和bar从模板中引用它们。
要控制空白,请使用“剥离”。选项,true - 剥离,假 - 保留。
'附加'是性能优化设置。它允许调整性能,具体取决于使用的javascript引擎和模板的大小,它可能会产生更好的结果,并将append设置为false。
如果是自包含的'是的,doT将生成与doT无依赖关系的函数。通常,生成的函数不依赖于doT,但encodeHTML除外,它仅在使用编码时才添加。如果是自包含的'是真的,模板需要编码,encodeHTML函数将包含在生成的模板函数中。