angularjs - Event handlers being duplicated when changing routes -


i have data coming @ rate of around 30 times per second , it's being fed app via these event handlers. i'm using btford.socket-io , 0mq responsible getting data node.js server.

i've tracked down data coming node server , realized it's coming correctly, duplication happening on angular side.

what happens every time when leave view , come it, events fired twice as before.

in btford api reference, gives suggestion of using

socket.forward('dataupdate', $scope); $scope.$on('socket:dataupdate', function(ev, data) {    $scope.somevar1 = data;    $scope.somevar2 = data;    $scope.somevar3 = data;    $scope.somevar4 = data; }); 

which helped situation. but, said, in case, event being called 30 times second , handled 4 times there 4 variables. each time change route showing these variables, instead of doing work 4 times, 8 times , 12, 16 , goes on. that, i'm getting memory leak , browser crashes.

does have ideas on how make better?

event listener never removed directly, need remove them forcefully. need deregistered listener while $destroying controller

code

socket.forward('dataupdate', $scope); var socketevent = $scope.$on('socket:dataupdate', function(ev, data) {    $scope.somevar1 = data;    $scope.somevar2 = data;    $scope.somevar3 = data;    $scope.somevar4 = data; });  $scope.$on('$destroy', function(){    socketevent(); //deregistering event while destroying controller scope. }) 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -