Hogan.js部分在预编译模板

是否有可能在编译模板中有部分? 这似乎是可能的,因为部分名称是在编译对象中引用的,但我不知道如何使其工作。

我在服务器端(node.js)预编译Hogan.js模板并在客户端使它们可用。 这是模板的一个片段:

<ul class="log-{{id}}"> {{#entries}} {{> entry}} {{/entries}} </ul> 

一旦这个模板被编译了,我就会看到一个关键字为<entry0的对象中的partials属性

我能够使用以下代码在客户端渲染模板:

 var data = {id: 11, entries: [{ id: 1, name: 'Entry 1'}, {id: 2, name: 'Entry 2'}]}; template = new Hogan.Template(compiledTemplate); template.render(data); 

模板呈现得很好,但{{#entries}} {{/entries}}块内没有任何{{#entries}} {{/entries}} 。 部分本身也是预编译的,可在客户端使用。 我试图通过几种不同的方式来传递,包括:

  template.render(data, {partials: { entry: compiledEntryTemplate }}); 

所有的迹象似乎都应该是可能的,但我无法弄清楚或find任何指出如何去做的文档。 我正在使用Hogan.js 3.0.1

pipe理搞清楚了。 以下内容将使编译的模板中编译的部分可访问。

  template.render(data, { entry: new Hogan.Template(compiledEntryTemplate) }); 

@TJ你可以看看hogan.jstesting套件( https://github.com/twitter/hogan.js/blob/master/test/index.js )。 在那里你会发现一个名为“部分基础”的testing案例

   var partialText =“这是来自部分的文本 - 幻数{{foo}}来自variables”;
   var p = Hogan.compile(partialText);

   var text =“这个模板包含一个部分({{> testPartial}})”。
   var t = Hogan.compile(text);

   var s = t.render({foo:42},{testPartial:p});
  是(s,“这个模板包含一个部分(这是部分文本 - 幻数42是一个variables)”,“partials work”);