2017-03-15 17 views
0

私はサイトにアレイを送信するJSサーバを持っています。それを閉じてもう一度開くと、ブートストラップモードのみが更新されますが、私の質問はです。すでに開いている場合はどうすれば更新できますか?それは閉じられ、uはここSocket.IO update bootstrap modal data

function findGame(id){ 
    for(var i = 0; i < games.length; i++){ 
     if(games[i].id == id){ 
      return games[i]; 
     } 
    } 
} 

function showGame(id){ 
    var data = findGame(id); 
    var skins_creator = []; 
    var skins_opponent = []; 
    $('.watch-cf .modal-header h3').html('Watch Coinflip | #' + id); 
    $('.modal-body #creator-name').html(data.creator[0].name); 
    $('.modal-body #hash').html(data.hash); 
    $('.modal-body .duel-user-img').attr('src', 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/1a/'+data.creator[0].icon+'_full.jpg'); 
    $('.modal-body #cf-creator-val').html(data.creator[0].totalSkins + ' skins valued at $' + data.creator[0].totalAmount); 
    data.creator[0].items.forEach(function (kevin){ 
     skins_creator.push('<div class="cf-skin" style="box-shadow: inset 0 0 20px #'+kevin.color+'"> <div class="cf-skin-img"><img src="https://steamcommunity-a.akamaihd.net/economy/image/class/730/'+kevin.classid+'/111fx57f"></div><div class="cf-skin-name">'+kevin.name+'<p>'+kevin.price+' USD</p></div></div>'); 
    }); 
    if(Object.keys(data.opponent).length > 0){ 
     $('.modal-body #opponent-name').html(data.opponent.name); 
     $('.modal-body .duel-user-img-opponent').attr('src', 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/1a/'+data.opponent.icon+'_full.jpg'); 
     $('.modal-body #cf-opponent-val').html(data.opponent.totalSkins + ' skins valued at $' + data.opponent.totalAmount); 
     data.opponent.items.forEach(function(kevin){ 
      skins_opponent.push('<div class="cf-skin" style="box-shadow: inset 0 0 20px #'+kevin.color+'"> <div class="cf-skin-img"><img src="https://steamcommunity-a.akamaihd.net/economy/image/class/730/'+kevin.classid+'/111fx57f"></div><div class="cf-skin-name">'+kevin.name+'<p>'+kevin.price+' USD</p></div></div>'); 
     }); 
     $('.modal-body .cf-opponent-skins').html(skins_opponent.join("")); 
    } 
    $('.modal-body .cf-creator-skins').html(skins_creator.join("")); 
    $('.watch-cf').modal('show'); 
} 

それを開いている場合ここで

は私のコードであるあなたが唯一のgame変数を再割り当てしているgames配列

socket.on('games', function(data){ 
    games = data; 
}); 

答えて

0

を設定し、私のソケットコードです。

JavaScriptはデフォルトで変数の変更を監視していません。その場合は、ロジック全体をshowGame内で再度実行する必要があります。

socket.on('games', function(data){ 
    games = data; 
    showGame('your_id'); 
}); 
+0

ありがとう、それはいくつかの微調整が必​​要ですが、動作するようです! –

+0

解決策が提案されている場合は、回答として回答してください;) –