2016-09-15 33 views
1

我正在使用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列表項。我怎樣才能將每個玩家分成他們自己的列表項目?謝謝。

回答

1

我建議:

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 
0

可以添加對象的所有領域中一個新的列表如下:

var list; 
for (var key in object) { 
     list.push(objet[key]); 
} 
+0

我的意思說HTML列表項,而不是一個JS數組。 – ErraticFox

相關問題