Ok so this issue has not been resolved. I am trying to avoid putting the
logic in my main controller. I did notice this has to be one of the "time"
issues you mentioned luke.
I m guessing the MainController receives the broadcast because it is some
how already loaded and ready to go, but my client controller somehow is not?
I tried one thing and noticed it is definately a timing issue. I put a
$timeout call for 1 second and I noticed that if I do that it hits the
broadcast. How can I deal with these timing issues? I tried to change my
logic from using jquery success callbacks to using the promise then instead
ANYONE who can help can answer this, not just Luke. I addressed him because
hes been helping. Thanks Luke!
On Thursday, April 17, 2014 9:53:56 PM UTC-4, 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.