何时/如何初始化控制器中的套接字

时间:2013-05-22 12:31:32

标签: angularjs

我有一个控制器,每当访问此控制器中的URL时,我想建立一个套接字连接。我正在创建一个套接字服务,我想知道何时/如何实例化它。我意识到我可以使用$rootScope.$on('$routeChangeStart', function () {});监控我的网址/approval,但似乎可能有更好的方法。 访问给定控制器的路由时,初始化套接字连接的最佳位置在哪里?

目前我只是在配置中初始化它以测试我的模块,但是长期这不起作用,因为我将有4-5个涉及套接字的控制器,并且使用的套接字取决于你使用哪个控制器正在访问。用户将只被定向到潜在的5个套接字/控制器组合中的一个,这就是为什么我不能让所有控制器在控制器配置中建立其套接字。

angular.module('workstation.process.approval', [
        /* Dependencies */
        'workstation.services'
    ]).

    config(['$routeProvider', 'SocketServiceProvider', function($routeProvider, SocketServiceProvider) {
        SocketServiceProvider.connect('/socket/workstation/approval');

        /* URL mappings */
        $routeProvider.
            when('/approval', {templateUrl: '/partials/loading.htm',   controller: 'ApprovalCtrl'}).
            when('/approval/dashboard', {templateUrl: '/partials/approval/dashboard.htm',   controller: 'ApprovalCtrl'})
    }]).

    controller('ApprovalCtrl', ['$scope', '$cookieStore', 'WorkflowProcessService', 'WorkstationService', 'SocketService', 'socketUrl', '$location', function ($scope, $cookieStore, WorkflowProcessService, WorkstationService, SocketService, socketUrl, $location) {
     //my controller
}]);

0 个答案:

没有答案