Angularの$onと$broadcast 質問する

Angularの$onと$broadcast 質問する

異なるビューを持つ footerController と codeScannerController があります。

angular.module('myApp').controller('footerController', ["$scope", function($scope) {}]);

angular.module('myApp').controller('codeScannerController', ["$scope", function($scope) {
console.log("start");
$scope.startScanner = function(){...

footer.htmlでをクリックすると、<li>codeScannerController でこのイベントを取得する必要があります。

<li class="button" ng-click="startScanner()">3</li>

$onとを使って実現できると思うのです$broadcastが、方法がわからず、例もどこにも見つかりません。

ベストアンサー1

$broadcastを使用する場合$rootScope

$scope.startScanner = function() {

    $rootScope.$broadcast('scanner-started');
}

受信するには、$scopeコントローラーの を使用します。

$scope.$on('scanner-started', function(event, args) {

    // do what you want to do
});

必要に応じて、次の場合に引数を渡すことができます$broadcast

$rootScope.$broadcast('scanner-started', { any: {} });

そして、それらを受け取ります:

$scope.$on('scanner-started', function(event, args) {

    var anyThing = args.any;
    // do what you want to do
});

これに関するドキュメントスコープドキュメント

おすすめ記事