Javascript dust.js渲染动态内容
我的模板中有下面的代码,在加载页面时提供所需的输出 当我使用套接字更新数据时,有没有办法让dust动态呈现页面Javascript dust.js渲染动态内容,javascript,jquery,dust.js,Javascript,Jquery,Dust.js,我的模板中有下面的代码,在加载页面时提供所需的输出 当我使用套接字更新数据时,有没有办法让dust动态呈现页面 {#storylines} <li>{text|bl|s} <span class="badge yellow">{@negidx}{.}{/negidx}</span></li> {/storylines} 我试图简单地将{@negidx}{.}{/negidx}添加到数据的末尾,但是输出是{@negidx}{.}{/negi
{#storylines}
<li>{text|bl|s} <span class="badge yellow">{@negidx}{.}{/negidx}</span></li>
{/storylines}
我试图简单地将
{@negidx}{.}{/negidx}
添加到数据的末尾,但是输出是{@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
使用返回的数据呈现模板
dust.render('storyline', data, function(err, output) {
检查输出
:
if (output) {
将输出插入页面。这通常是通过innerHTML完成的,但是您可以使用任何适合您的工具。记住,输出
此时是一个字符串
$('#newstoryline').before(output);
我目前正在服务器端渲染模板。使用正常的“$”(“#newstoryline”)。在(模糊线(数据))之前它确实更新了数据。但是,它不会将{@negidx}{.}{/negidx}
呈现为值,而只是返回一个字符串。如果无法在服务器端进行渲染,则可能必须考虑移动到客户端渲染。你知道服务器端渲染和客户端渲染的优缺点是什么吗?你可以两者都使用。只需在页面上包含dust-core.js即可使用客户端。客户端呈现的一个优点是可以缓存模板,因此在页面加载时只需下载JSON。
$('#newstoryline').before(output);