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”);