Angularjs 如何检测是否注册了新的侦听器?

Angularjs 如何检测是否注册了新的侦听器?,angularjs,Angularjs,如果另一段代码在上调用了$scope.$,我希望我的服务收到通知,以便它可以使用相同的命名频道订阅websocket。$rootScope上是否有我可以监听的事件或我可以$watch的表达式 我试过这个: 我正在观看的是Object.keys($scope.$$listeners).length,但它似乎没有在初始加载之外被调用 谢谢 最好的方法不是调用$on,而是创建自己的函数,在通知服务时为您调用$on 如果您确实需要通过$on功能检测到它,那么您可以像这样覆盖该功能: var old$on

如果另一段代码在上调用了
$scope.$,我希望我的服务收到通知,以便它可以使用相同的命名频道订阅websocket。
$rootScope
上是否有我可以监听的事件或我可以$watch的表达式

我试过这个:

我正在观看的是Object.keys($scope.$$listeners).length,但它似乎没有在初始加载之外被调用


谢谢

最好的方法不是调用
$on
,而是创建自己的函数,在通知服务时为您调用
$on

如果您确实需要通过
$on
功能检测到它,那么您可以像这样覆盖该功能:

var old$on = $scope.$on;
$scope.$on = function(name, listener) {
    // Code to notify your service here

    old$on.apply(this, arguments);
}

谢谢我正在为图书馆做这件事。我想我可以让用户通过我的服务注册事件,但是让他们使用普通的API,并让注册自动挂接到我的服务(如果它被注入的话)会很好。谢谢,Kranklin。我在这个JSFIDLE中使用了override方法。