2014-12-27 49 views
0

PoblemSocket.io路線變更後停止工作的角度

我有3條路線簡單的角度應用:R1,R2,R3。 r1的控制器擁有套接字事件的監聽器。這是啓動應用程序時加載的第一條路線。事情工作正常,當應用程序啓動。但是,當我導航到r2/r3並返回到r1時,套接字停止工作。控制檯中沒有錯誤。

代碼

app.js

var host = "http://myhost.com"; 
var socket = io(host + ':3000'); 

angular 
    .module('myApp', [ 
     'ngRoute' 
    ]) 
    .config(function ($routeProvider) { 
     $routeProvider 
       .when('/', { 
        templateUrl: 'views/r1.html', 
        controller: 'r1Ctrl' 
       }) 
       .when('/r2', { 
        templateUrl: 'views/r2.html', 
        controller: 'r2Ctrl' 
       }) 
       .when('/r3', { 
        templateUrl: 'views/r3.html', 
        controller: 'r3Ctrl' 
       }) 
       .otherwise({ 
        redirectTo: '/' 
       }); 
    }); 

r1Ctrl.js

angular.module('myApp') 
    .controller('r1Ctrl', function ($scope) { 
     // Listeners 
     socket.on('event1', function (data) { 
      $scope.$apply(function() { 
       ... 
      }); 
     }); 
     ... 
}); 
+0

可能你正在刷新頁面? – sbaaaang 2014-12-27 17:25:38

+0

http://bevereq.com/ – 2014-12-27 17:37:45

+0

你應該多調試一下,使用console.log()當套接字啓動等等時:P – sbaaaang 2014-12-27 17:39:16

回答

1

即使你離開R1,插座聽者保持註冊。當您再次訪問r1時,另一個偵聽器會註冊相同的事件。您的問題的唯一解釋是您的回調不是基於這一事實而構建的,並且如果已完成,則無法完成該工作。

+0

謝謝,我會考慮這些線路。 – 2015-03-24 19:08:31