Введите дважды в событие socket.on - PullRequest
0 голосов
/ 15 января 2019

Я новичок в Angular и Node.js. Мой код выполняет socket.emit для функции на стороне сервера и получает ответ в событии socket.on ('listartists'). К сожалению, он дважды входит в это событие, и я не понимаю, почему. На стороне сервера (app.js) я помещаю логи, и функция вызывается правильно один раз, но затем она дважды проходит через socket.on ('listartists').

Спасибо всем

var appAng = angular.module('appAng', []).controller('myCtrl', function($scope) {
  socket.on('listartists', function(msg) {  
    // !!! enter twice this part of the code
    var ClientMessage = JSON.parse(msg);
    if (ClientMessage.ClientID == GetClientUniqueId()) {                
      var artistslist = JSON.parse(ClientMessage.Message);            
      $scope.$apply(function() {        
        var artistslist=JSON.parse(ClientMessage.Message);
        $scope.artists = artistslist;      
      }); 
    }   
  });
});

1 Ответ

0 голосов
/ 16 января 2019

я изменил свой код как:

socket.on('listartists', function(msg){  
var ClientMessage=JSON.parse(msg);
if (ClientMessage.ClientID== GetClientUniqueId())
{
    console.log("Arriva Lista Artisti " + ClientMessage.ClientID);
    var artistslist =JSON.parse(ClientMessage.Message);
    $scope.artists = artistslist; 
    $scope.$apply( function(){}); 

}
});

В любом случае, если я удалю $ scope. $ Apply (function () {}); событие socket.on вызывается только один раз, в противном случае он проходит дважды оттуда. Я думаю, что проблема управления сферой какой-либо идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...