有没有办法将Handlebars部分(带变量)传递给另一个帮手?

时间:2016-09-27 02:11:24

标签: javascript handlebars.js

因此,有一个模板文件为我的网页中的组件生成一些不同的布局,其中不同的变量指示大小和诸如此类的东西。因此,为了减少项目中的文件数量,我正在尝试将模板文件重用于代码片段,而不是为它们提供专用文件。通过子表达式,我有想法做这样的事情:

{{ 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并不是这样做的。

是否可以像这样检索部分或是否需要使用{{>语法(这不起作用)?

1 个答案:

答案 0 :(得分:0)

当我问这个问题时,我对如何以编程方式将上下文应用于部分方式感到困惑。现在我已经做了一些更多的研究(我确实在询问之前尝试了但是无处可去),我现在知道Handlebars.compile(partial)将为给定的部分返回一个对象,并允许通过{{1}给出一个上下文应该返回。

示例代码

partial(context)