277 votes

$et $de diffusion angulaire

j'ai un footerController et scanController avec différents points de vue.

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

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

quand je clique sur li dans footer.html je devrais obtenir cet événement dans scancontroller. je pense que l'on peut réaliser avec $et $de diffusion, mais ne savent pas comment et ne peut pas trouver des exemples partout..

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

624voto

Davin Tryon Points 16838

Si vous souhaitez $broadcast utiliser l' $rootScope:

$scope.startScanner = function() {

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

Et puis, à recevoir, utiliser l' $scope de votre contrôleur:

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

    // do what you want to do
});

Si vous le souhaitez, vous pouvez passer des arguments lorsque vous $broadcast:

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

Et puis les recevoir:

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

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

De la Documentation pour ce à l'intérieur de la Portée docs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X