因此,有一个模板文件正在为我的网页中的组件生成一些不同的布局,这些布局具有不同的变量来指示大小和其他内容。因此,为了减少项目中的文件数量,我尝试将模板文件重用于代码片段,而不是为其使用专用文件。通过子表达式,我有了这样的想法:
{{ escape (template var1=var1 var2=var2 var3=var3) }}
escape
一个帮助程序在哪里接收字符串并对其进行转义(很有趣),并且:
(template var1=var1 var2=var2 var3=var3)
应该具有与相同的效果{{> template var1=var1 var2=var2 var3=var3 }}
,大概以字符串形式返回完整的标记。
助手似乎没有收到任何字符串,因为typeof
在该参数上运行正在返回undefined
。我以为是因为{{> template var1=var1 var2=var2 var3=var3 }}
该文件在文件中更高处使用,即正在注册该文件以在文件的其余部分中使用,但现在我想这不是Handlebars的工作方式。
是否有可能像这样检索部分内容或它是否需要使用{{>
语法(不起作用)?
当我问这个问题时,我对如何将上下文以编程方式应用到部分内容感到有些困惑。现在,我做了更多的研究(在问之前没有做过尝试,但是没有结果),我现在知道Handlebars.compile(partial)
将为给定的部分返回一个对象,并允许给出partial(context)
应该通过其返回的上下文。
样例代码
function escape(partial) {
let compiledPartial = Handlebars.compile(partial);
let context = { greeting: "Hello World!" };
return compiledPartial(context);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句