如何将ajax响应转换为html

时间:2012-01-12 09:03:14

标签: javascript jquery json jquery-templates

我有个人资料页面,用户可以上传自我评论。

在json中上传评论的代码

$('#profile-comment .stream-more-link').click(function (e) {
    e.preventDefault();
    //Increment stream page
    streamPage++;
    //Get post data in json
    $.ajax({
        url : "/profile/comments",
        dataType: "json",
        data: {"page":streamPage},
        success: function(response) {
            if (response.length > 0) {
                $('#commentTmpl').tmpl(response).appendTo('.stream-items');
            } else {
                $('.stream-more').hide();
            }
        }
    })
    return false;
});

jQuery模板

<script type="text/x-jquery-tmpl" id="commentTmpl">
    <div class="stream-item">
        {{if post.length}}
        <div class="article-title">
            <a class="article-title-link" href="${post.titleLink}">${post.title}</a>
        </div>
        {{/if}}
        <div class="comment level-1" id="c${comment.id}">
            <div class="comment-wrap">
                <div class="comment-img">
                    <img src="${user.foto}" width="48px" height="48px" alt="имя профиля" />
                </div>
                <div class="comment-content">
                    <a class="author" href="${user.link}">${user.name}</a>
                    <div class="text">
                        <p>${comment.content}</p>
                    </div>
                    <div class="meta">
                        ${comment.date}
                    </div>
                </div>
            </div>
        </div>
    </div>
</script>

来自chrome json预览的JSON响应示例:

8: {post:[],…}
comment: {id:46298, content:<i>проверка</i>, на то как<b> </b><b><i>работает</i></b><b> </b>очистка.<br>,…}
content: "<i>проверка</i>, на то как<b> </b><b><i>работает</i></b><b> </b>очистка.<br>"
date: "20.09.2011 02:22"
id: "46298"
post: []
user: {name:moderator, link:/profile/view/username/moderator,…}
foto: "/files/user/fotos/thumb/default.jpg"
link: "/profile/view/username/moderator"
name: "moderator"
9: {post:[], comment:{id:46303,…}, user:{name:moderator, link:/profile/view/username/moderator,…}}
comment: {id:46303,…}
content: "Содержимое с <b>HTML</b>-<i>разметкой <img src="/files/emoticons/love.gif" alt="love" title="love" /><br></i>"
date: "20.09.2011 02:19"
id: "46303"
post: []
user: {name:moderator, link:/profile/view/username/moderator,…}
foto: "/files/user/fotos/thumb/default.jpg"
link: "/profile/view/username/moderator"
name: "moderator"

评论内容未评估为html,只是字符串。

1 个答案:

答案 0 :(得分:1)

如果我们想在模板中输出html,我们必须使用这种结构{{html var Name}}

有关此内容的更多信息

http://api.jquery.com/template-tag-html/