web-dev-qa-db-ja.com

複数のパラメーターを使用したAngularJS $ broadcast

私は次のような複数のパラメータで$ broadcast $ onを持つことができるかどうか疑問に思っていました:

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

どんな場合でも、このようなものや似たようなものを持つことは可能ですか?

前もって感謝します!

18
blaa

パラメータをオブジェクトに入れるだけです:

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

次に、コールバックへの2番目の引数からそれらにアクセスします。

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

または、ES2015構文を使用している場合は、引数を展開できます。

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

ドキュメントは言う:

「イベントリスナーに渡されるオプションの1つ以上の引数」

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