1. ホーム
  2. ジャバスクリプト

[解決済み】$onと$broadcastの角度の関係

2022-04-16 14:38:07

質問

footerControllerとcodeScannerControllerを異なるビューで使用しています。

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

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

をクリックすると <li> というイベントをcodeScannerControllerで取得する必要があります。

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

で実現できると思います。 $on$broadcast が、やり方がわからないし、例もどこにもない。

どのように解決するのですか?

もし、あなたが $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
});

このためのドキュメントは スコープ・ドキュメント .