jtemplates追加而不是覆盖

时间:2010-09-29 14:11:31

标签: jquery json jtemplate

我正在使用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人,但我希望有人知道解决方案。

感谢您的时间。 亲切的问候, 标记

1 个答案:

答案 0 :(得分:2)

这是一个黑暗中的镜头,因为我既不知道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();
}