1

私は PrototypeJS を何年も使用しており、ライブラリにあるテンプレート機能が気に入っています。私は今jQueryに変更し、私はかなりの初心者です。問題の解決策が見つかりません:

ajax リクエストから、html イメージ タグを含む json オブジェクトを取得します。次のようになります。

<-- some data -->, "del":"<img src=\"img\/icon_delete.png\" class=\"firmenDelZData\" border=\"0\" height=\"17\" id=\"zdataid_13\">"}

次の呼び出しを使用してjqueryでこのデータを取得すると(jsonオブジェクト全体を含む:

XHR = $.parseJSON( data );
alert( var.del );

二重引用符のない通常のイメージ タグを示す警告ボックスが表示されます。しかし、次のようにjqueryテンプレート関数でこの変数を取得すると:

$.tmpl( "zdTemplate", { "del": firmenzd[i].del } ).appendTo("#zd");

テンプレート エンジンはこのイメージ タグを二重引用符で囲んで挿入するため、ブラウザにはイメージが表示されず、タグ自体がテキストとして表示されます... どうすれば修正できますか?

 "<img src=\"img\/icon_delete.png\" class=\"fDelZData\" border=\"0\" height=\"17\" id=\"zdataid_13\"> 

別の質問があります: jQuery プラグイン セクションで $.tmpl 関数が見つからないのはなぜですか? jqueryでそのようなテンプレートを作成する別の方法はありますか?

回答ありがとうございます

M.

解決

さらに 2 時間検索した後、.tmpl 関数を使用して HTML コードを挿入するための優れたタグを見つけました。${del} の代わりに {{html del}} を配置するだけで済みました。

したがって、テンプレートを定義するときは、次のようにする必要があります。

`var zdTemplate = '<tr class="ptr zdEntry">' + 
                   '<td class="cellValue fontValue">{{html edit}}</td>' +     
                   '<td class="cellValue fontValue">{{html del}}</td>' + 
                 '</tr>';
$.template( "zdTemplate", zdTemplate );`

テンプレートは次のようになります。

          ` $.tmpl( "zdTemplate", {
               "edit": firmenzd[i].edit,
               "del": firmenzd[i].del } ).appendTo("#data");`

これが他の誰かに役立つことを願っています!

M.

PS: 自分で解決策を見つけました。自分の質問に答えるにはここでは新しすぎます

4

0 に答える 0