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.

Reply via email to