1

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

感谢您的时间。亲切的问候,马克

4

1 回答 1

3

It's kind of a shot in the dark, because I know neither the details of the jtemplates plugin nor what your templates look like.

Try this:

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();
}
于 2010-09-29T15:46:43.613 回答