jtemplates добавить вместо перезаписи - PullRequest
1 голос
/ 29 сентября 2010

Я использую jtemplates (плагин jquery) в качестве шаблонного решения, которое, кстати, потрясающе! Я заменил свои панели обновлений asp.net этим, и мой бог, что ускоритель. Однако у меня проблема в том, что я загружаю комментарии пользователей под статьей с этой системой шаблонов. Я обрабатываю шаблон так:

function ApplyTemplate(result) {
if (result.d.length == 0) {
    $('#comments_empty').show();
}
else {
    var msg = (typeof result.d) == 'string' ? eval('(' + result.d + ')') : result.d;
    $('#comments_container').setTemplate($("#comments_template").html());
    $('#comments_container').processTemplate(msg);
    $('#comments_empty').hide();
}
$('#loading').hide();

}

Это прекрасно работает, но то, чего я хочу сейчас, я не могу достичь. Я хочу добавить новые элементы (потому что есть кнопка «Показать больше комментариев» к старым. Поэтому я подумал, что я мог бы просто использовать:

var html = $('#comments_container').processTemplate(msg).toString();

и затем добавьте html в тот или иной контейнер, но это не работает. Извините, я не очень разбираюсь в jquery / javascript, но я надеюсь, что кто-то знает решение.

Спасибо за ваше время. С уважением, Mark

1 Ответ

2 голосов
/ 29 сентября 2010

Это своего рода выстрел в темноте, потому что я не знаю ни деталей плагина jtemplates, ни того, как выглядят ваши шаблоны.

Попробуйте это:

function ApplyTemplate(result) {
  if (result.d.length == 0) {
    $('#comments_empty').show();
  } else {
    var
      $commentsContainer = $('#comments_container'),
      msg = ((typeof result.d) == 'string' ? eval('(' + result.d + ')') : result.d),
      old = $commentsContainer.html();
    $commentsContainer.setTemplate($("#comments_template").html());
    $commentsContainer.processTemplate(msg);
    $commentsContainer.prepend(old);
    $('#comments_empty').hide();
  }
  $('#loading').hide();
}
...