如何在Jade中循环遍历JavaScript对象?

如何在Jade中循环遍历JavaScript对象?,javascript,jquery,json,node.js,pug,Javascript,Jquery,Json,Node.js,Pug,Node.js-Jade-socket.io-jQuery-JSON 在my index.jade中,我有以下代码,其中结果数据以JSON的形式来自后端: extends layout block content ul // more jade html here script. socket.on('results', function(results) { results.forEach(function(item){ name = item.name; $(

Node.js-Jade-socket.io-jQuery-JSON

在my index.jade中,我有以下代码,其中结果数据以JSON的形式来自后端:

extends layout

block content
 ul
 // more jade html here

 script.
  socket.on('results', function(results) {
   results.forEach(function(item){
   name = item.name;
   $('ul').append('<li>'+name+'</li>');
  });
 });
虽然我无法在我的块内容中编写最后一段代码,因为socket.on'results'尚未触发并抛出错误


有没有一种优雅的方式来写这篇文章?

你也可以在客户端使用jade。看看jadeify:

这样,您就可以使用row.jade,例如,在每个套接字消息上附加一行:

var template = require('views/row.jade');
var $ul = $('ul');
socket.on('row',  function(item) {
    $uk.append(template(item));
});

然后调整套接字,使其一次发出一行。

返回数据后,可以重新呈现布局。在初始渲染时,可以只渲染加载微调器或某种空状态。一旦数据出现,重新呈现并包含所有名称。添加一个大块html比多次添加小块html更有效。本质上,我的问题是:与其有一个又长又难看的append'name:'+name+'age:'+age+等等……我可以有一个appendtemplate,其中模板是保存在别处的一块单独的玉石吗?
var template = require('views/row.jade');
var $ul = $('ul');
socket.on('row',  function(item) {
    $uk.append(template(item));
});