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 に答える