Broadcating event on button click :-
$scope.onButtonClick = function(){ $rootScope.$broadcast(\'onButtonClick\'); }
And catching event in
As it turned out the multiple controllers were instantiated due to ng-controller declaration in html and also as part of state setup for ui-router.
ng-controller
ui-router
The solution is to remove one of the declarations.