I am using jquery templates which I populate using an ajax request. However, one of the values returned is encoded HTML. How can I encode it?
I have tried using ${$.mobile.html(Body).text()} but that didn't work for me.
My code:
Domain.Discussion.ListView = Domain.Discussion.ListView || {
DiscussionPage: (function () {
var onGetDiscussionSuccess = function (data) {
$("#discussionsList ul").remove();
$("#discussionListItem").tmpl(data.DiscussionsResult).appendTo("#discussionsList", function () {
reloadAndFixPanelContent()
});
}
var onGetDiscussionError = function () {
console.log("Error occured when retrieving discussions");
}
$.ajax({
url: absolutePath + "Discussions",
headers: { "Accept": "application/json; odata=verbose" },
success: onGetDiscussionSuccess,
error: onGetDiscussionError
});
}())
};
Html:
<!-- Discussion replies -->
<script id="replies" type="text/x-jquery-tmpl">
<div class="message message-first">
<div class="message-header">
<div class="message-header-user">
<h1>${Author}</h1>
<h2>Role not set yet</h2>
</div>
<div class="message-header-date">${Created}</div>
</div>
<div class="message-content">
<span>${$.mobile.html(Body).text()}</span>
<hr />
</div>
</div>
</script>
<!-- /Discussion replies -->
Bodywith value (HTML Encoded)<div class="ExternalClassC23D0863D23B4421A039D700D6AECF79">Hejsan hoppsan!<br><p></p></div>.<p>Hello, world!</p>becomes<p>Hello, world!</p>when encoded. I found the solution now.