Avoid using $rootScope.$broadcast + $scope.$on but rather $rootScope.$emit + $rootScope.$on
For more info: refer http://stackoverflow.com/a/19498009/288703 On Mon, Sep 15, 2014 at 10:53 AM, Otto Wong <[email protected]> wrote: > this has sparked another question regarding $rootScope. > > i've been using $rootScope.$emit, $rootScope.$on, and > $rootScope.$broadcast a lot, usually because i have weird cases where i > need to pass an object between different controllers, or perhaps i need an > event in one controller to trigger a function in another controller. > > based on what you've said, i'm guessing that if i'm injecting $rootScope > in all my controllers then it's a huge hit on performance.. > > i've also had a case where i needed one sibling controller to trigger a > function in another sibling controller, so i created a parent controller > for the two with the sole purpose of having a $scope.$on that simply just > had one line in it, and it was a $scope.$broadcast that triggered the > function in the other controller. > > are these acceptable ways of achieving what i need? > > > > On Monday, 15 September 2014 10:44:59 UTC-4, Otto Wong wrote: >> >> thanks for the suggestions Rishi.. i was searching on this topic for a >> long time and couldn't find anything that answered my question directly. >> changing the modal from a $rootScope function to a service will be a good >> exercise. >> >> On Mon, Sep 15, 2014 at 10:37 AM, Tandon, Rishi <[email protected] >> > wrote: >> >>> Otto, That's an excellent question. >>> Avoid injecting the model to $rootscope as that would increase >>> unnecessary overhead all over the app. Instead, create a reusable service >>> and use where it is needed. >>> The good candidates for $rootscope are: >>> 1. User Logged-in info. >>> 2. Device/ Browser/ Orientation detection >>> 3. httpSessionTimedOut global handler >>> 4. $routeChangeStart, $routeChangeSuccess & $routeChangeError global >>> handler >>> 5. Global app search >>> >>> Regards >>> Rishi Tandon >>> >>> On Mon, Sep 15, 2014 at 10:18 AM, Otto Wong < >>> [email protected]> wrote: >>> >>>> hi there.. i'm semi-new to angularjs, ie, i've been using it for a >>>> while now but i have no clue if what i'm building is against best practices >>>> or not! :) >>>> >>>> i'm coming to a point in my application where it's becoming apparent >>>> due to changes in requirements that certain features should have been done >>>> by creating a service, since multiple different places in the application >>>> are needing to do the same thing. >>>> >>>> a while back, i needed to open modals. this type of requirement is very >>>> easy to identify as "something that requires multiple places to do the same >>>> thing". back then, i was less familiar with services and factories and >>>> solved this problem by creating a function defined in the $rootScope, so >>>> every time i need to open a modal now, i include $rootScope in the >>>> controller that needs it and open it with a function that goes something >>>> like $rootScope.modal('open',url);, and close it with >>>> $rootScope.modal('close',''); >>>> >>>> is this way of doing it wrong or against best practices? i'd like to >>>> know if there is a performance difference between creating a service and >>>> just defining a lot of $rootScope functions? >>>> >>>> thanks! >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "AngularJS" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/group/angular. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> *Rishi Tandon* >>> Pearson Learning Technology Group >>> >>> Mobile: (310) 926-9032 >>> >>> Pearson >>> Always Learning >>> Learn more at www.pearson.com >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "AngularJS" group. >>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>> topic/angular/TQxPxEzJzZQ/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/angular. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "AngularJS" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/angular. > For more options, visit https://groups.google.com/d/optout. > -- *Rishi Tandon* Pearson Learning Technology Group Mobile: (310) 926-9032 Pearson Always Learning Learn more at www.pearson.com -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
