dust.js呈现动态内容

时间:2013-02-13 20:03:48

标签: javascript jquery 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 个答案:

答案 0 :(得分: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使用返回的数据呈现模板。

    dust.render('storyline', data, function(err, output) {

检查output

  if (output) {

output插入您的信息页。这通常使用innerHTML完成,但您可以使用任何适合您的方法。请记住,此时output是一个字符串。

        $('#newstoryline').before(output);