3

jQuery Tmpl を多用して古い Web インターフェイスを移行したところ、一部のテンプレートが機能しなくなりました。さらに調査すると、TR タグで開始および終了するテンプレートが機能していないことがわかります (つまり、テーブルの行が既存のテーブルに追加されます)。ソース テキストは、jQuery Tmpl スクリプトによって削除されます。TR タグをテーブルにラップするなど、より広いコンテキストで使用すると、すべて正常に機能しますが、分離されたテンプレートで使用されるとすぐに消去されます。

作業例:

<script id="workingTemplate" type="text/x-jQuery-tmpl" >
    <table>
        <tr><td>this works</td></tr>
    </table>
</script>

動作しない例:

<script id="notWorkingTemplate" type="text/x-jQuery-tmpl" >
    <tr><td>this does not work</td></tr>
</script>

最初の例は Firebug でチェックするときに完全な HTML コードをレンダリングし、後者は空の SCRIPT タグをレンダリングします。

テンプレートに何らかの形で関連する可能性のある古い Web インターフェイスと新しい Web インターフェイスの違いは、jQuery 1.5.2 から 1.8.2 への変更です。これは .on() 関数が追加された場所であり、新しいフレームワークではこのメソッドが広範に使用されているため、1.7.2 より下のバージョンは試していません。

最も明白な問題 (= テンプレート フレームワークをまだ維持されているものに変更する) を除いて、この問題の回避策はありますか?

編集:文字列からテンプレートをロードすると、コンテンツはそのまま残り、

 $.template( "tableRowTemplate",'<tr><td>this works</td></tr>');
 $.tmpl("tableRowTemplate", data).appendTo('TABLE#mytable TBODY');

残念ながら、私のテンプレートは例よりも少し複雑なので(サーバー側のダイナミクスなど...)、私には役に立ちません。しかし、それはいくつかのヒントを与えます。明らかに、コンテンツが不明な点に準拠していない場合にコンテンツを削除するのは、jQuery Tmpl の初期化です。多分jQuery.fn.domManip?

4

0 に答える 0