0

別のコードで が呼び出された場合$scope.$on、同じ名前のチャネルで websocket をサブスクライブできるように、サービスにこれが通知されるようにしたいと考えています。リッスンできるイベント$rootScopeまたは $watch できる式はありますか?

私はこれを試しました:http://jsfiddle.net/polidore/AZ7Av/

私がいるところです$watching Object.keys($scope.$$listeners).lengthが、初期ロード以外は呼び出されないようです。

ありがとう!

4

1 に答える 1

1

を呼び出す代わりに、サービスに通知する際$onに呼び出す独自の関数を作成するのが最善の方法です。$on

関数を介してそれを検出する必要がある場合は$on、次のように関数をオーバーライドできます。

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

    old$on.apply(this, arguments);
}
于 2012-06-29T17:28:07.353 に答える