把手帮手模板组成

Max*_* L. 5 handlebars.js

我有一个Handlebar助手来调用模板中的模板,

用法是这样的:

applyTemplate subTemplateId arg1 = 123 arg2 ="abc"...

也可以传递html内容

   {{# applyTemplate "tli" a=1 b="y"}}
   ... any content here will get passed to the sub template with {{content}}
   {{/ applyTemplate }}
Run Code Online (Sandbox Code Playgroud)

这个jsFiddle说明了它是如何工作的:http://jsfiddle.net/maxl/ywUjj/

我的问题:我希望调用范围中的变量可以在子模板中访问,在jsFiddle中,注意{{topLevelVar}}如何不可用.

谢谢

web*_*rap 0

从这个例子中我想说你可以使用 fn 访问辅助方法中的上下文 http://yehudakatz.com/2010/09/09/announcing-handlebars-js/

applyTemplate: function(context, fn) {
    for(var i=0, j=context.length; i < j; i++) {
      buffer.push(fn(context[i]))
    }
}
Run Code Online (Sandbox Code Playgroud)

其中 fn 是内部“模板”部分,上下文是应用于它的模型。