Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AngularJS Data service vs $rootScope events

Can you please explain the use use of data services vs the use of $rootScope events.

I have a list of say branches which provides edit functionality. On click of edit button I am broadcasting an event with root scope using

$rootScope.$broadcast('EditBranch', branchID);

This EditBranch event is captured by edit/create controller which fetches the branch details and renders it in a proper edit format.

Other function is I am adding a new branch and I want it to be listed in existing branch list as soon as it is added. the code used is as follows

$rootScope.$broadcast('AddBranch', branchData);   //in create controller

$scope.$on('AddBranch', function(e, branchData){  //in listing controller 
    $scope.branches.push(branchData);
});

Is it right to use $rootScope this way. Or should I create a shredService for sharing branch data after I create it.

like image 711
Uday Sawant Avatar asked Mar 22 '26 21:03

Uday Sawant


1 Answers

It may not be easy to say if one approach is better than the other. However, I would use a shared service in this case since it is all about manipulating the same data, branch (I suppose). $broadcast and $on are more appropriate in situations where different "independent" components of your application could be listening for an event and each of these components could response differently when the event occurs.

like image 88
kubuntu Avatar answered Mar 25 '26 09:03

kubuntu



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!