dust.js呈现动态内容
问题描述:
我在我的模板中有下面的代码,它可以在页面加载时提供所需的输出。dust.js呈现动态内容
有没有办法有灰尘动态渲染页面,因为我使用套接字来更新数据
{#storylines}
<li>{text|bl|s} <span class="badge yellow">{@negidx}{.}{/negidx}</span></li>
{/storylines}
插槽IO码:
socket.on('updatechat', function (username, data) {
$('#newstoryline').before(blurlines(data));
});
我试着简单地增加<span class="badge yellow">{@negidx}{.}{/negidx}</span>
到数据的结尾,但输出是{@negidx}{.}{/negidx}
- 有没有办法让dust.js渲染最新的数据?或者我将不得不使用某种jQuery而不是{@negidx}{.}{/negidx}
?
答
如果你正在渲染你的模板客户端,这应该很容易。您的代码会是这个样子:
socket.on('updatechat', function (username, data) {
if (data) {
dust.render('storyline', data, function(err, output) {
if (output) {
$('#newstoryline').before(output);
}
});
}
});
这是怎么回事:
返回的数据应该是JSON。检查是否有返回。
if (data) {
使用dust
使用返回的数据呈现模板。
检查output
:
if (output) {
插入output
到您的网页。这通常使用innerHTML完成,但您可以使用任何适合您的作品。请记住,output
在这一点上是一个字符串。
$('#newstoryline').before(output);
我目前正在渲染模板服务器端。 使用普通的$('#newstoryline')。before(blurlines(data));'它更新数据。但它不会将'{@negidx} {。} {/ negidx}'呈现为值,而只是返回一个字符串。 如果不能完成服务器端,可能必须考虑移动到客户端渲染。你知道服务器和客户端渲染的优点/缺点吗? – Tam2 2013-02-13 21:33:28
你可以使用两者。只需在您的页面上添加dust-core.js即可使用客户端。客户端渲染的一个优点是您可以缓存模板,因此您在页面加载时需要下载的唯一东西是JSON。 – smfoote 2013-02-13 21:43:45