使用handlebars.js 渲染部分模板时是否可以向上下文添加属性?
{{> MyTemplate { X: Y }}}
我有一个共享模板,我需要向其中插入一些值,具体取决于它使用的“主”模板。
使用handlebars.js 渲染部分模板时是否可以向上下文添加属性?
{{> MyTemplate { X: Y }}}
我有一个共享模板,我需要向其中插入一些值,具体取决于它使用的“主”模板。
您不能直接在对部分的调用中执行此操作,不。但是您可以将上下文传递给部分,前提是您已经在包装上下文中提供了它。
为了在上下文中“嵌入”数据,您可以使用设置私有变量的助手,如下所示:
<div>
{{makeVar 'mode' 33}}
<span>mode: {{@mode}}</span><!-- will return mode: 33 -->
</div>
然后,通过将上下文中的动态内容传递给makeVar
帮助程序,您可以计算一个值,@mode
然后将其添加到当前上下文中。
您还可以修改上下文本身,或动态地将上下文与计算数据合并。(注意:这样做也会影响上下文的下游用户。)
因此,您可以像这样调用部分,并相应地设置包装上下文@mode
。
<div>
{{> myPartial .}}<!-- inside partial, @mode is accessible, along with context -->
</div>
见:http: //jsfiddle.net/mcw0933/Cy64X/