Я создал jTemplate для отображения массива «тестовых» объектов.Массив является обычным индексированным массивом.Шаблон очень прост, просто использует {#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?