angularjs - $rootScope.$broadcast vs. $scope.$emit -
angularjs - $rootScope.$broadcast vs. $scope.$emit -
now performance difference between $broadcast
, $emit
has been eliminated, there reason prefer $scope.$emit
$rootscope.$broadcast
?
they different, yes.
$emit
restricted scope hierarchy (upwards) - may good, if fits design, seems me rather arbitrary restriction.
$rootscope.$broadcast
works across choose hear event, more sensible restriction in mind.
am missing something?
edit:
to clarify in response answer, direction of dispatch not issue i'm after. $scope.$emit
dispatches event upwards, , $scope.$broadcast
- downwards. why not utilize $rootscope.$broadcast
reach intended listeners?
$rootscope.$emit
lets other $rootscope
listeners grab it. when don't want every $scope
it. high level communication. think of adults talking each other in room kids can't hear them.
$rootscope.$broadcast
method lets pretty much hear it. equivalent of parents yelling dinner ready in house hears it.
$scope.$emit
when want $scope
, parents , $rootscope
hear event. kid whining parents @ home (but not @ grocery store other kids can hear).
$scope.$broadcast
$scope
, children. kid whispering stuffed animals parents can't hear.
tl;dr (this tl;dr @sp00m reply below)
$emit dispatches event upwards ... $broadcast dispatches event downwards
angularjs angularjs-scope
Comments
Post a Comment