AngularJS $broadcast with multiple parameters

23,411

Solution 1

Just put the parameters into an object:

$scope.$broadcast('event', { a: item1, b: item2 })

Then access them from the second argument to the callback:

$scope.$on('event', function(event, opt) {
 // access opt.a, opt.b
});

Or if using ES2015 syntax you can unpack the arguments:

$scope.$on('event', (event, {a,b}) => {
 // access them just as a, b
});

Solution 2

Documentation says:

'Optional one or more arguments which will be passed onto the event listeners'

$rootScope.$emit(event_name, p1, p2, p3);

Share:
23,411
blaa
Author by

blaa

Updated on February 07, 2020

Comments

  • blaa
    blaa over 4 years

    Can I have a $broadcast $on with multiple parameters, something like:

    $scope.$broadcast('event',$scope.item, $scope.item);
    

    Is it possible to have something like this or something similar in any case ?