I have registered my listener to a $broadcast event using $on function
$scope.$on("onViewUpdated", this.callMe);
and I want to un-register this listener based on a particular business rule. But my problem is that once it is registered I am not able to un-register it.
Is there any method in AngularJS to un-register a particular listener? A method like $on that un-register this event, may be $off. So that based on the business logic i can say
$scope.$off("onViewUpdated", this.callMe);
and this function stop being called when somebody broadcast "onViewUpdated" event.
Thanks
EDIT:
I want to de-register the listener from another function. Not the function where i register it.
Best Answer
You need to store the returned function and call it to unsubscribe from the event.
This is found in the source code :) at least in 1.0.4. I'll just post the full code since it's short
Also, see the docs.