2013-02-13 122 views
0

我在我的模板中有下面的代码,它可以在页面加载时提供所需的输出。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}

回答

1

如果你正在渲染你的模板客户端,这应该很容易。您的代码会是这个样子:

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); 
+0

我目前正在渲染模板服务器端。 使用普通的$('#newstoryline')。before(blurlines(data));'它更新数据。但它不会将'{@negidx} {。} {/ negidx}'呈现为值,而只是返回一个字符串。 如果不能完成服务器端,可能必须考虑移动到客户端渲染。你知道服务器和客户端渲染的优点/缺点吗? – Tam2 2013-02-13 21:33:28

+0

你可以使用两者。只需在您的页面上添加dust-core.js即可使用客户端。客户端渲染的一个优点是您可以缓存模板,因此您在页面加载时需要下载的唯一东西是JSON。 – smfoote 2013-02-13 21:43:45