Well, without seeing the code, it was an option that the broadcast was
happening before the child controller had registered the listener.  Now
that I see the code, that is not the case.

So I added the factory login method on the child scope.  Now clicking the
button fires the broadcast and both listeners fire as well:
http://plnkr.co/edit/Ti2nerqta29HPH8DZTBt?p=preview




On Fri, Apr 18, 2014 at 11:42 AM, Billy Figueroa <[email protected]> wrote:

> Hey what do you mean "is loaded at the time of the broadcast'
>
> I know the controller is active becasue I have some json files I am
> loading for drop down menus and those are all loaded, but we never go into
> the $scope.$on code to the console.log statement.
>
> I am trying to recreate this and this is why I dislike plunker and
> jsfiddle, they always give me problems..
>
> why is this not working...
>
> http://plnkr.co/edit/h3a6ZwkUF2vCy36gEPUe?p=preview
>
> I can't get the AuthFactory to work. I tried to add a button to
> console.log when I click but it doesnt do anything
>
>
> On Friday, April 18, 2014 1:45:29 AM UTC-4, Luke Kende wrote:
>>
>> This could be a timing thing.  Are you sure your listener ($scope.$on) in
>> client controller is loaded at the time of the broadcast? Another
>> console.log just before the registration may help you see if that's the
>> case.  I don't believe that main as parent would override the child
>> controllers handler, but I have had it happen in one of my directives....
>> you can verify by commenting out the one in main to double check.
>>
>>
>>
>> On Thursday, April 17, 2014 7:53:56 PM UTC-6, Billy Figueroa wrote:
>>>
>>> Hi All,
>>>
>>> so I have a quick issue with my controller ordering I guess.
>>>
>>> I have the following shell page layout...
>>>
>>> <html>
>>>    <head></head>
>>>    <body ng-controller="MainController">
>>>       <div ng-view></div>
>>>    </body>
>>> </html>
>>>
>>> I have an ng-view template that the routeProvider is loading
>>> (account.php) when we hit the url and load ClientController...
>>>
>>>     .when('/client/:user_id/account', {
>>>         templateUrl: '../MINT/views/account.php',
>>>         controller: 'ClientController',
>>>         restrict: true
>>>     })
>>>
>>> I also have an AuthFacotory factory where, once a user logs in and I get
>>> data back from my backend (PHP) I broadcast a signal to say we are
>>> authenticated
>>>
>>>                     if (phpData.account_type === 'client')
>>>                         $rootScope.$broadcast('clientAuthenticated',
>>> phpData);
>>>                     else
>>>                         $rootScope.$broadcast('providerAuthenticated',
>>> phpData);
>>>
>>> I have the following I guess "watches" both inside the MainController
>>> and ClientController
>>>
>>>
>>> <-- MainController -->
>>>     $scope.$on('clientAuthenticated', function(phpData) {
>>>         console.log("We caught the broadcast for clientAuthenticated[
>>> MainController]");
>>>     });
>>>
>>> <-- ClientController -->
>>>     $scope.$on('clientAuthenticated', function(phpData) {
>>>         console.log("We caught the broadcast for clientAuthenticated[
>>> ClientController]");
>>>     });
>>>
>>>
>>> I am only "catching" the one in the MainController.
>>>
>>> Based on the structure being that the ClientController is loaded as part
>>> of the view, I m guessing its some sort of a child of the MainController
>>> but why is it not "catching" that broadcast?
>>>
>>> the weird part is that I have other code in the ClientController and
>>> that gets executed but the console.log inside the scope statement is not
>>>
>>> I wanted to create a jsfiddle or plunker but I rarely get them working
>>> when I try to do it in a non global modular way like real apps are written
>>> i.e. var myApp = angular.module('myApp', [])
>>>
>>  --
> 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/NaBscLyPqhY/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