1

renderjsRenderテンプレートを呼び出した後、それは消費されているように見えるため、DOMから削除されます。ユーザーの操作に応じてテンプレートを数回レンダリングする必要があるページがあるので、これはイライラします。

console.log($('#tpl'));
$('#container').html($('#tpl').render(json));
console.log($('#tpl'));

2番目のconsole.logは空の配列であり、DOMインスペクターと、jsRenderがスローする例外を使用してテンプレートが存在しないことを確認できます。-Uncaught JsRender Error: Unknown template: "#tpl"テンプレートをDOMに再挿入するには、ページを再ロードする必要があります。

レンダリング間でjsRenderテンプレートを永続化するにはどうすればよいですか?

4

2 に答える 2

2

なぜそれを消費する必要があり、最初にレンダリングした後にDOMにとどまることができないのかはまだわかりませんが、回避策を見つけました。テンプレートをDOMから削除する理由を誰かが知っているなら、私はまだ興味があります。

更新:実際の回答(ありがとう、Boris)

私のテンプレートは私の#container要素内にあったので、html()メソッドはもちろんそれを上書きしていました。愚かな私。

回避策とにかくきちんとした小さなトリック

この「バリアント」の例を使用して、テンプレートをローカル変数に保存しました。render次に、jQueryセレクターの代わりに変数名を呼び出します。

var tpl = $.templates('#tpl');

.
.
.

console.log(tpl);
$('#container').html(tpl.render(json));
console.log(tpl);

これにより、レンダリング間でテンプレートを保持することもできました。

于 2012-07-16T17:31:09.713 に答える