最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - AngularJS Data service vs $rootScope events - Stack Overflow

programmeradmin1浏览0评论

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.

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.

Share Improve this question asked Nov 4, 2013 at 11:02 Uday SawantUday Sawant 5,7983 gold badges34 silver badges45 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

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" ponents of your application could be listening for an event and each of these ponents could response differently when the event occurs.

Service is a Singleton and you can inject to any controller and invoke getter/setter service values in a controller's scope.

I think with Services you have better control over data and might make code clear.

发布评论

评论列表(0)

  1. 暂无评论