1

使用 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>

有谁知道这样的事情是否可行,如果可以,该怎么做?

谢谢!

4

2 回答 2

0

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

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

或者您可以createTemplate将参考作为include

var t = $.createTemplate($('templatePagination').html());
$(container).setTemplate($('templateList').html(), t._templates)
于 2010-09-15T14:59:15.997 回答
0

你应该能够做到:

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

然后您可以使用模板并执行以下操作:

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

我是一个 js/jquery 新手,如果它不完美,我很抱歉。我正在使用 $.createTemplateURL 而不是我们的文本区域从 url 加载它

于 2010-12-22T21:34:37.200 回答