1

私のソースコードはここにあります:

http://jsfiddle.net/2pkHL/

正しくレンダリングされない理由がわかりません。また、別のオブジェクト内にデータをネストしない方法はありますか?

<script id='myTemplate' type='text/x-jquery-tmpl'>

Table of stuffs:

<table>
{{each value}}
<tr>
    <td>${name}</td>
    <td>${value}</td>
</tr>
{{/each}}

</table>


</script>


<div id="target">

</div>



var something = function () { };

var results = [{ name: 'First', value: 1 }, { name: 'Second', value: 2 }];

something.value = results;

$('#myTemplate').tmpl(something).appendTo('#target');
4

2 に答える 2

3

次の 2 行だけが必要です。

var results = [{ name: 'First', value: 1 }, { name: 'Second', value: 2 }];
$('#myTemplate').tmpl({value: results}).appendTo('#target');

関数の代わりにプレーンなオブジェクトを使用しています。デモを参照してください: http://jsfiddle.net/2pkHL/6/


物事をさらにシンプルにすることができます。( ではなく) 行のみがデータの影響を受けるため<table>、テンプレートに行のみを含め、配列をデータとして直接指定するとtmpl、配列内の各要素の HTML が自動的に生成されます。

<script id='myTemplate' type='text/x-jquery-tmpl'>
<tr>
    <td>${name}</td>
    <td>${value}</td>
</tr>
</script>

Table of stuffs:
<table id="target">
</table>

J:

var results = [{ name: 'First', value: 1 }, { name: 'Second', value: 2 }];
$('#myTemplate').tmpl(results).appendTo('#target');

ここでこのバージョンを参照してください: http://jsfiddle.net/2pkHL/11/

于 2011-02-24T13:22:21.260 に答える
1

さて、あなたの主な問題は、var something が関数であると言うことです。オブジェクトにすれば準備万端!:)

これは更新されたフィドルです。http://jsfiddle.net/2pkHL/5/

そしてもちろん、更新された vode もここにあります:

<script id='myTemplate' type='text/x-jquery-tmpl'>
Table of stuffs:
<table>
{{each value}}
<tr>
    <td>${name}</td>
    <td>${value}</td>
</tr>
{{/each}}
</table>
</script>
<div id="target">
</div>

そしてJS:

var something = {};

var results = [{ name: 'First', value: 1 }, { name: 'Second', value: 2 }];

something.value = results;

$('#myTemplate').tmpl(something).appendTo('#target');
于 2011-02-24T13:22:25.153 に答える