首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jtemplates追加而不是覆盖

jtemplates追加而不是覆盖
EN

Stack Overflow用户
提问于 2010-09-29 22:11:31
回答 1查看 957关注 0票数 1

我正在使用jtemplates (jquery插件)作为我的模板解决方案,顺便说一句,这个解决方案很棒!我用这个替换了我的asp.net更新面板,我的天啊,多快的速度啊。然而,我遇到的问题是,我使用这个模板系统在一篇文章下加载用户评论。我像这样处理模板:

代码语言:javascript
复制
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();

}

这很好用,但是我现在想要的东西我不能实现。我想要追加新的项目(因为有一个名为“显示更多评论”的按钮添加到旧项目上。所以我想我可以用一下:

代码语言:javascript
复制
var html = $('#comments_container').processTemplate(msg).toString();

然后将html添加到该容器或另一个容器中,但这不起作用。对不起,我不太喜欢jquery/javascript,但我希望有人知道解决方案。

谢谢您抽时间见我。致以亲切的问候,马克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-29 23:46:44

这是一种盲目的尝试,因为我既不知道jtemplate插件的细节,也不知道你的模板是什么样子的。

试试这个:

代码语言:javascript
复制
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();
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3822416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档