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 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