b_e_m
@b_e_m
Front-End Dev

Как заставить Angular удалять все socket.io listener's только при перезагрузке контроллера?

ПОдскажите, может есть какой-нибудь евент, типа "controller reload" или что то похожее.

.controller('chatNotificationCtrl', ['$scope', 'socket', 'toastr', '$rootScope', '$state', function($scope, socket, toastr, $rootScope, $state) {
	alert('REFRESHED')
	$scope.chatNotifications = {};
	console.log('STARTED NOTIFICATION CONTROLLER');
	if ($scope.logged) {
		$scope.chatNotifications = $scope.logged.chatNotify;
	} else {
		return;
	}
	socket.on('notify:chat', function(data) {
		console.log('NOTIFY CHAT');
		$scope.chatNotifications.unshift(data);
		toastr.success('Example', 'New Message');
	});

	$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
		socket.getSocket().removeAllListeners();
	})

}])


Сделал так пока что, но если меняется стейт - это не значит что всегда перезапускается контроллер, есть вложенные роуты просто..
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы