Es sendet $ broadcast einmal vom rootScope, aber der Listener ($ on) wird zweimal aufgerufen.
Der Listener befindet sich in einem Controller und verwendet $rootScope.$on
anstelle von $scope.$on
. Hat jemand dieses Problem?
bearbeiten
rootScope:
$rootScope.$broadcast('menuActivateAction' + item.event_name_postfix, item.event_args);
anderen Controller:
$rootScope.$on('menuActivateActionPublish', function(event) {});
sollten Sie Ihren Code – Grundy
bereitstellen Vielleicht haben Sie zwei Controller? – kaaposc
Wahrscheinlich müssen Sie den Listener entfernen, wenn der Controller zerstört wird. Ich würde sogar den Listener in der '.run' Phase und nicht im Controller registrieren - um solche Probleme zu vermeiden, sollte der Controller nur Listener auf seinen eigenen Bereich registrieren. – Michael