在jTemplates中合成多个模板

时间:2010-09-12 21:54:47

标签: javascript jquery jtemplate

使用jTemplates,可以像这样复合模板...

<textarea id="templateList" class="template"><!--

  {#template RESULTS}
    This a template for generating a list of results
    {#include PAGINATION root=$T}
  {#/template RESULTS}

  {#template PAGINATION}
    This is a template for generating pagination through the results
  {#/template PAGINATION}

--></textarea>

然而,有时候能够合成完全不同的模板会很方便。例如,我有很多不同类型的列表,每个列表都有一个不同的模板。使用上面的方法,我不得不在不同列表的每个模板中反复重复使用相同的代码块进行分页。

我宁愿做以下事情......

<textarea id="templateList" class="template"><!--
  This is a template listing results
  {#some kind of call to templatePagination}
--></textarea>

<textarea id="templatePagination" class="template"><!--
  This is a template for generating pagination
--></textarea>

有谁知道这样的事情是否可能,如果有的话,该怎么办?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您没有模板引用,则可以在setTemplate附加所有需要的模板。

$(container)
   .setTemplate($('templateList').html() + $('templatePagination').html())

或者您可以createTemplate并将引用作为include

传递
var t = $.createTemplate($('templatePagination').html());
$(container).setTemplate($('templateList').html(), t._templates)

答案 1 :(得分:0)

你应该可以这样做:

var templates = $.createTemplate($('templateList').html())._templates;

然后你可以使用模板并执行:

$('#SOMEDIV').setTemplate(templates['PAGINATION'],templates);
&('#SOMEDIV').processTemplate(data);

我是js / jquery新手,如果它不完美我很抱歉。我正在使用$ .createTemplateURL而不是我们

的文本区域从网址加载它