1

使用handlebars.js 渲染部分模板时是否可以向上下文添加属性?

{{> MyTemplate { X: Y }}}

我有一个共享模板,我需要向其中插入一些值,具体取决于它使用的“主”模板。

4

1 回答 1

2

您不能直接在对部分的调用中执行此操作,不。但是您可以将上下文传递给部分,前提是您已经在包装上下文中提供了它。

为了在上下文中“嵌入”数据,您可以使用设置私有变量的助手,如下所示:

<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/

于 2013-11-05T18:41:19.117 回答