2016-09-15 3 views
1

私はSocket.ioを使ってプロジェクトNode.JSプロジェクトを作成しています。私は、オブジェクトからHTMLリストアイテムを作成しようとしています。私はレンダリングされるこのpugファイルにプレーヤーのリストをプリレンダリングしようとしています。しかし、私は選手のリストを取得して、それをHTMLで表示することができますが、すべてのユーザ名は1つのリストアイテムとしてまとまります。私はその理由players[socket.id] = {}がオブジェクトであり、オブジェクトに行くん他のものがあるためではない配列である、それだけではありませんオブジェクトからリストアイテムを作成する

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 
    }) 
}) 

を試してみた

物事ここに含まれています。

room.pug

.row 
    .col.s12 
     #test 
      ul 
       li 
       |#{playerList} 

としては、上記の方法は、単一のHTMLリスト項目に含まれるすべてのプレーヤーを置く、前にも言いました。どのように各プレーヤーを自分のリストアイテムに分けることができますか?ありがとう。

答えて

1

は、私がお勧めし

.row 
    .col.s12 
     #test 
      ul 
       each playerName in playerList 
        li= playerName 
0

あなたはこのような新しいリスト内のオブジェクトのすべてのフィールドを追加することができます。

socket.on('connection', function(socket) { 
    players[socket.id] = {} 
    var roomData = pug.renderFile('./views/room.pug', { 
     playerList: Object.keys(players) 
    }) 
    // etc ... 
}) 

をし、パグに:

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

私が意味します言い換えると、js配列ではなく、HTMLリスト項目です。 – ErraticFox

関連する問題