Составление нескольких шаблонов в jTemplates - PullRequest
1 голос
/ 13 сентября 2010

Используя 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 голосов
/ 23 декабря 2010

Вы должны быть в состоянии сделать:

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

Тогда вы можете использовать шаблоны и делать:

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

Я новичок в js / jquery, извините, если он не идеален. Я загружаю его из URL, используя $ .createTemplateURL вместо текстовых областей, которые мы

0 голосов
/ 15 сентября 2010

Вы можете добавить все необходимые шаблоны вместе, когда вы setTemplate, если у вас нет ссылки на шаблон.

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

или вы можете createTemplate и передать ссылку как include

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