AngularJS $broadcast 多参数

AngularJS $broadcast with multiple parameters

我可以有一个带有多个参数的 $broadcast $on 吗? 类似于:

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

有没有可能在任何情况下都有这样或类似的东西?

把参数放到一个对象中即可:

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

然后从回调的第二个参数访问它们:

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

或者,如果使用 ES2015 语法,您可以解压参数:

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

文档说:

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

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

$scope.$broadcast('broadcast-my-event', anyVariable);
anyVariable = {key1: value1, key2: value2};
// or
anyVariable = [value1, value2, value3];