「テスト」オブジェクトの配列を表示する jTemplate を作成しました。配列は通常のインデックス付き配列です。テンプレートは非常に基本的なもので、 a を使用し{#foreach}
て配列内の項目を反復処理し、それらを小さなテーブルに表示するだけです。このテンプレートは仕事をし、期待される出力を取得します。
// Setup the JTemplate.
$('#tests_div').setTemplate($('#tests_template').html());
try {
// Process the JTemplate to display all currently selected tests.
$('#tests_div').processTemplate(_selectedTests);
}
catch (e) {
alert('Error with processing template: ' + e.Description);
}
<script type="text/html" id="tests_template">
{#foreach $T as tests}
<table>
<tr>
<td>Index: {$T.tests.index}</td>
<td>Name: {$T.tests.firstname} {$T.tests.lastname}</td>
<td>Score: {$T.tests.score} </td>
</tr>
</table>
{#/for}
</script>
私がやりたいのは、配列を連想配列に変更し、テストのインデックスを使用してオブジェクトを格納することです。これにより、後でテストを操作する必要がある場合に、作業が簡単になります。
var a = new Test;
a.index = 12345678;
_selectedTests[a.index] = a;
ただし、配列をテンプレートに渡すと、スクリプトがブラウザの実行速度を低下させているというエラーが表示され、停止するかどうか尋ねられます。ある種の無限ループのようです。テンプレートが配列を正しく読み取っているかどうかはわかりません。jTemplates内の連想配列をどのように操作するか教えてもらえますか?