Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript dust.js渲染动态内容_Javascript_Jquery_Dust.js - Fatal编程技术网

Javascript dust.js渲染动态内容

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

我的模板中有下面的代码,在加载页面时提供所需的输出

当我使用套接字更新数据时,有没有办法让dust动态呈现页面

{#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);