如何在 Jade 中循环访问 JavaScript 对象

How do I loop through JavaScript objects in Jade?

本文关键字:访问 JavaScript 对象 循环 Jade      更新时间:2023-09-26

Node.js - 翡翠 - socket.io - j查询 - JSON

在我的"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>');
  });
 });

这有效,但是,因为我稍后会有更多的内容和标签推送到"ul"中,所以我不想在"append()"中有大量的串联 html。

我真的很喜欢翡翠格式:

ul
 each val, index in results
 li= results[index].name

虽然我无法在我的"块内容"中编写最后一段代码,因为"socket.on('results')"尚未触发并抛出错误。

有没有一种优雅的写法?

您也可以在客户端上使用 jade。看看jadeify:https://github.com/domenic/jadeify

这样,您将拥有 row.jade ,例如,在每个套接字消息上,附加一行:

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

然后只需调整套接字一次发出一行即可。