繰り返しを避けるために、私はサーバ側とクライアント側のテンプレート作成のためにひげをつけようとしています。私は次のようなテンプレートを持っています:動的にロードされたひげそりテンプレートの一部を取り出すためにjQueryを使うにはどうすればいいですか?
<html>
<head>...</head>
<body>
<table>
<tbody id="#this">
{{rows}}
<tr>{{row}}<tr>
{{/rows}}
</tbody>
</table>
</body>
</html>
これは私のサーバー側のテンプレートに最適です。しかし、クライアント側では、私はいくつかの問題を抱えています。私は正常にajaxを使用してテンプレートを読み込むことができますが、私はすべてのテーブルの行を更新する必要はありません。
$(function() {
var template;
$.ajax('templates/thetemplate.mustache', {
success : function (data) {
template = $('#this', data).html();
},
dataType : 'html'
});
});
私はしかし#this
要素の内容を取得するためにjQueryの上で使用する場合は、それらの間の<tr>{{row}}</tr>
が正常に返されながら、{{rows}}
と{{/rows}}
ラインが、結果から削除されます。どのようにコンテンツ全体を入手できますか?
同じ結果を返す$('#this', data).contents();
と、空の文字列を返す$('#this', data).val();
を試しました。代わりに$(data).find('#this')
を使用すると、同じ3つの結果が得られます。私はまた、明らかな効果なしで'text'
にajax呼び出しのdataTypeを設定しようとしました。
partialsを使って私が望むもの(クライアントとサーバー側のテンプレートの部分を複製しない)を実現でき、実際にはそれ以上のテンプレートの転送を避けるという追加のボーナスクライアントにそれを投げ捨てる必要がありますが、それは私の質問には答えません。最初
おかげ
私はまたテンプレート全体を使い、Mustacheレンダリング後にjQueryの選択をすることもできます。 var rendered = Mustache.render(wholetemplate、data); $( '#this').html($( '#this'、rendered).html()); しかし、私はむしろちょうど私が必要とするテンプレートの部分を得るだろう。 – coastwise