このコントローラーの URL にアクセスするたびに、ソケット接続を確立したいというコントローラーがあります。ソケット サービスを作成していますが、いつ、どのようにインスタンス化するのか疑問に思っています。$rootScope.$on('$routeChangeStart', function () {});
URL を監視するために使用できることはわかっています/approval
が、おそらくもっと良い方法があるようです。 特定のコントローラーのルートがアクセスされたときにソケット接続を初期化するのに最適な場所はどこですか?
現在、モジュールをテストするために構成で初期化していますが、ソケットを含む4〜5個のコントローラーがあり、使用されるソケットはアクセスしているコントローラーに依存するため、長期的には機能しません. ユーザーは、潜在的な 5 つのソケット/コントローラーの組み合わせのうちの 1 つにしか誘導されないため、コントローラー構成ですべてのコントローラーにソケットを確立させることはできません。
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
}]);