2012-05-08 11 views
1

jQueryテンプレートプラグインを使用して別々のhtmlファイルをテンプレートとしてレンダリングしています。テンプレートの1つは次のようになります。jQuery Templatesプラグインはコンパイル前に外部divタグを削除します

<div class="row"> 
    <div class="span4"> 
     test1 
    </div> 
    <div class="span4"> 
     test2 
    </div> 
    <div class="span4"> 
     test3 
    </div> 
</div> 

私は実際にデータをレンダリングしていません。

私はfirebugでデバッグすると、私は私のajax呼び出しが正しいhtmlを(上記とまったく同じ)フェッチすることがわかります。私はそのようにように(templateと呼ばれるVARに格納されている)私の取得したテンプレートを投入するために(data呼ばVARに格納されている)JSONオブジェクトを使用します。

$.tmpl(template, data).appendTo('#person-item-placeholder'); 

(放火魔によって検査される)結果のHTMLは、この(予告です行方不明div要素)私は、その要素を削除するから、テンプレートプラグインを防ぐにはどうすればよい

<div id="person-item-placeholder"> 
    <div class="span4">test1‌</div> 
    <div class="span4">‌test2‌</div> 
    <div class="span4">test3‌</div> 
</div> 

答えて

2

と罰金...まだクロスチェックすること、何をしようとしたことは動作するはずですが、テンプレートパラメータのオプションのいずれかを読み取ります:

テンプレートパラメータは、....テンプレートとしてコンテンツを使用するHTML要素(または要素をラップするjQueryオブジェクト )です。

キーワードは「content」です。つまり、文字列が渡されたときに発生するとは言わないが、ラッパーは破棄されます。それを無視して、症状は質問に記載されているとおりです。

可能な解決策は、テンプレートをダミーコンテナ、たとえばdivに事前ラップすることです。

私が正しい場合、これは動作するはずです:

$.tmpl('<div>+'template+'</div>', data).appendTo('#person-item-placeholder'); 

または多分を:

$.tmpl($(template).wrap('<div/>'), data).appendTo('#person-item-placeholder'); 
+0

天才!ありがとう。ラッピングはトリックでした。 – hofnarwillie

+0

はい、これはどんな場合でも深刻な問題です!ありがとう! – Nico

0

jquery template docのこのページの例を挙げて行くあなたが欠落していてください....他のotの

何かがまた、それを原因としなければならない...欠落しているタグを確認...他のすべてのようですjQuery.tmplドキュメントが表面に一種のあいまいなこの地域

である例

関連する問題