2016-09-15 8 views
1

Socket.io를 사용하여 Node.JS 프로젝트를 만들고 있습니다. 개체에서 HTML 목록 항목을 만들려고합니다. 내가 렌더링 될 pug 파일에 플레이어 목록을 미리 렌더링하려고합니다. 하지만, 플레이어 목록을 가져와 html로 표시 할 수 있지만 모든 사용자 이름은 하나의 목록 항목으로 함께 뭉칩니다.객체에서 목록 항목 만들기

것들 내가

시도

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] = {}는 객체이다 app.js 및 객체에 갈 않는 다른 물건이 있기 때문에하지 배열, 그냥 아니에요되는 것 여기에 포함되어 있습니다. 마찬가지로 전에 말했듯이

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

room.pug은, 위의 방법은 하나의 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

내 말은 to say HTML 목록 항목, js 배열이 아닙니다. – ErraticFox