Итак, метод, который я сейчас использую для решения этой проблемы, заключается в том, что я добавил нумерованный индекс к каждому из моих шаблонных разделов HTML, например:
<div id="list">
<div id="items-start"></div>
{#foreach $T as item}
<div id="item-{$T.item$index}" class="item">
...lots of stuff...
</div>
{#/for}
</div>
Затем в свои элементы json я добавил атрибут InitialIndex, чтобы отслеживать, какой элемент dom связан с каждым элементом в json. Таким образом, после внесения каких-либо изменений в мои данные JSON я могу вызвать эту простую функцию, чтобы применить изменения к DOM:
function applyListChanges(items) {
$('.item').hide();
for (var item in items) {
var index = items[item].InitialIndex;
$('#items-start').append($('#item-' + index));
$('#item-' + index).show();
}
}
Пожалуйста, дайте мне знать, если у вас есть лучшее решение.