我正在使用Socket.io创建一个项目Node.JS项目。我试图从一个对象制作HTML列表项。我试图将玩家列表预先渲染到我正在渲染的这个哈巴狗文件中。虽然,我可以获取播放器列表并在html中显示它,但所有用户名都聚集在一起作为一个列表项。
我尝试过的事情
app.js
var players = {}
socket.on('connection', function(socket) {
players[socket.id] = {}
var playerList = ''
for (var i in players) {
playerList += i + "<br>"
}
var roomData = pug.renderFile('./views/room.pug', {
playerList: playerList
})
})
players[socket.id] = {}
是一个对象而不是数组的原因是因为在对象中还有其他内容,它只是不包含在这里。
room.pug
.row
.col.s12
#test
ul
li
|#{playerList}
如前所述,上述方法将所有玩家放在一个HTML列表项中。如何将每个玩家分成他们自己的列表项?感谢。
答案 0 :(得分:2)
我建议:
socket.on('connection', function(socket) {
players[socket.id] = {}
var roomData = pug.renderFile('./views/room.pug', {
playerList: Object.keys(players)
})
// etc ...
})
和帕格:
.row
.col.s12
#test
ul
each playerName in playerList
li= playerName
答案 1 :(得分:0)
您可以在新列表中添加对象的所有字段,如下所示:
var list;
for (var key in object) {
list.push(objet[key]);
}